Excel - Solver no reconoce los decimales

   
Vista:

Solver no reconoce los decimales

Publicado por David (14 intervenciones) el 10/03/2015 04:37:15
Saludos amigos del foro

Estoy automatizando una hoja de excel mediante una macro, para ello necesito usar Solver

El Solver lo ejecuto mediante una macro por VBA,

Por ejemplo, quiero ingresar la siguiente restricción:

2 >= 1,5

Si el 1,5 se encuentra en la celda Cells(Y + 1, 4), coloco en el codigo de solver la siguiente estructura para ingresar la restricción....


SolverAdd CellRef:=Cells(Y + 1, 2), Relation:=3, FormulaText:=Cells(Y + 1, 4)

Sin embargo, dentro del solver aparece el numero como 15 (es decir aparece sin la coma (,))

del mismo modo intente haciendo 2 >= 1.5 (Es decir usando un punto (.)), pero continua igual, solver lo reconoce como 15


Les agradezco enormemente sus respuestas
Mil gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Solver no reconoce los decimales

Publicado por Ogal (6 intervenciones) el 12/03/2015 02:57:47
Trata de cambiar la configuracion regional en tu panel de control, poniendo punto como decimal en todos los campos e intenta de nuevo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solver no reconoce los decimales

Publicado por David (14 intervenciones) el 12/03/2015 03:28:45
Gracias por responder
Asi como dices cambie la configuración del punto y coma, pero igualmente el solver no reconoce ninguno de los dos,
al ingresar en VBA el codigo, por ejemplo tanto 50,2 o 50.2 solver lo reconoce como 502
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solver no reconoce los decimales

Publicado por Ogal (6 intervenciones) el 12/03/2015 03:37:05
Chango, y si tratas de poner algo asi: si es 10,2 pones ( 102/10 ) matematicamente hablando es lo mismo pero sin usar decimales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solver no reconoce los decimales

Publicado por David (14 intervenciones) el 12/03/2015 05:35:03
Ogal nuevamente gracias por responder

La opción que mencionaste anteriormente ya la había intentado, igualmente solver no lo reconoce decimales, te muestro por ejemplo que 7/8=0,875 ó 0.875 (si cambio la configuración), solver muestra 875 como puedes ver en la siguiente imagen...

FOTO

La verdad no se que sucede, es un código básico en VBA de Excel para automatizar solver sin necesidad de que el usuario ingrese los datos.

Las retricciones se añaden con esta estructura
por ejemplo, si quiero ingresar

2>=1,5
El numero "2" se encuentra en Cells(Y + 1, 2)
">=" es Relation:=1,
El numero 1,5 se encuentra en Cells(Y + 1, 4)

SolverAdd CellRef:=Cells(Y + 1, 2), Relation:=1, FormulaText:=Cells(Y + 1, 4)

Igualmente con punto o con coma el 1,5 ó 1.5 sale en solver como 15
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solver no reconoce los decimales

Publicado por Ogal (6 intervenciones) el 12/03/2015 16:02:34
Parcero, carga los numeros en una variable tipo long, y te va a trabajar bien trate de hacerlo muy basico ya que no se que es lo que estas trabajando pero mira, la celda objetivo

Otra cosa, lo que me dices es cierto the constrains have tres partes

Parte1: Cell reference "CellRef:=" solamente te admite numero
Parte2: tipo de relacion logica "Relation:=" solamente te admite numero
Parte3: Constrain "FormulaText:=" solamente te admite numero

Como cada una solamente te admite un numero carga una variable para cada uno, y la variable si la amarras mas facil al rango que deseas.

Sub Resolver()

Dim OBJ As Long
OBJ = Range("f2")


SolverOk SetCell:="$C$9", MaxMinVal:=3, ValueOf:=OBJ, ByChange:="$D$5,$D$7", _
Engine:=1, EngineDesc:="GRG Nonlinear"
SolverAdd CellRef:="$D$5", Relation:=1, FormulaText:="$E$5"
SolverSolve
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Solver no reconoce los decimales

Publicado por David (14 intervenciones) el 17/03/2015 03:40:07
Saludos Ogal, muchas gracias por tu respuesta

Al final pude resolver el problema almacenando los datos en un vector y luego creando una variable de esta manera:

OBJ = VECTOR3(t) & "/" & 1
SolverAdd CellRef:=Cells(Y + 1, 2), Relation:=1, FormulaText:=OBJ

Entonces solver me lee normalmente todos los numeros como fracción y efectivamente da las mismas respuestas optimas que al hacerlo manualmente


Muchas gracias por tu ayuda y colaboración
un abrazo y saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar