Hola Foristas, que tal?
Les traigo un problema con un codigo que hice para automatizar la funcion solver cada vez que cambio la celda g9 en mi planilla.
El código es el siguiente:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Prima As Range
Set Prima = Range("g9")
If Not Intersect(Target, Prima) Is Nothing Then
SolverReset
SolverOK SetCell:=Range("G145"), _
MaxMinVal:=1, _
ByChange:=Range("g146")
SolverAdd cellRef:=Range("G145"), _
relation:=2, _
formulaText:=Range("G9")
SolverSolve UserFinish:=True
End If
End Sub
Y el problema es el siguiente:
Aunque todo marcha bien cuando cambio la celda g9, es decir se ejecuta el solver y me devuelve el valor de g146 tal que g145 sea igual a g9, cuando cambio la celda g9 por ejemplo de 2 a 2,5 solver me devuelve un valor para g146 tal que g145 sea igual 25 y no 2,5. En otras palabras la restriccion del solver me toma el valor de g9 como si fuese un entero y no me reconoce el decimal. Por el contrario si el cambio en la celda g9 fuese de 2 a 3, el codigo funciona a la perfeccion.
Desde ya muchas gracias por la ayuda
Suena a que no toma la coma como decimal. Prueba a poner 2.5, o carga el valor en alguna variable y luego pásasela al solver, no vaya a ser que haya un bug con el tema de la internacionalización.
Un saludo
Gracias por tu respuesta cron