Función para encontrar valor en vb6.0

No se como hacer una función o procedimiento para encontrar un valor en visual basic 6.0

Tengo los siguientes textbox

Text1 llamado importe, text2 llamado descuento y text3 llamado neto

lo que hago ahorita es ingresar un valor al text1 en el text2 = text1 * 0.06 y el text3 = text1 - text2, es decir :

text1 = 1000

(-) text2 = 60 (text1 por 0.06)

(=) text3 =940

Como seria el calculo a la inversa es decir que yo ingrese el valor en text3 y la función buscara los valores del text2 y text1.

1 respuesta

Respuesta
1

Entiendo que cuando dices buscar, quieres decir calcular.

Usando reglá de tres simple

text1 =1000 es tu 100%

text2 = 60 (0.06) es tu 6%

Entonces text3 viene hacer el 94% (100%-6%).

Basándome en lo descrito anteriormente:

Si io ingreso 94 en el text3, que por lo dicho antes seria mi 94%

text3 = 94 es el 94%

Entonces se deduce:

Hallamos el 100%

text1 = (text3 * 100) 94 = 100

y por diferencia

text2 = text1 - text3. = 6

Esto usando una regla de tres simple...

pero que sucede si en el caso del text2 no fuera un porcentaje fijo si no que se obtuviera de otro procedimiento (suma resta multiplicación etc del text1), opte por poner un porcentaje para explicarme un poco mejor.

Lo que intento hacer es algo como un bucle que ponga el valor en el text1 incrementalo en 0.01 y comparando el valor del text3 que llegue hasta el valor deseado.

Seria algo como excel lo hace la función buscar objetivo.

Gracias

saludos

Interesante pregunta, estuve revisando y probando la función de excel que citaste, "Buscar objetivo", siendo sincero no la conocía, y pues me parece también bastante interesante.

Ahora en mis pruebas con dicha función, funciona bastante bien cuando intentas hallar un valor en primera instancia, osea al primer intento, luego como que se que "malea" por así decirlo, No se si has llegado tu a probarlo, pero bueno eso es un punto aparte.

Ahora para plantear esto en tu escenario (en tu caso)..

Corrígeme si me equivoco, este seria el flujo de dicha función, por ejemplo:

tomemos los sig. valores. Mi base inicial sera 100 y yo quiero llegar a 99, entonces necesito determinar cuanto sera el monto a variar.

1ra vuelta:

Base = 100

monto a variar (+/-) = 1

Base Final = 99

2da vuelta, se toma la nueva base la cual es 99 y quiero llegar a 100, entonces:

Base = 99
monto a variar (+/-) = 1
Base Final = 100

Y así sucesivamente,

Otra cosa que puedo entender es que deseas mantener la base inicial y solo jugar el monto a variar y la base final..

¿Cuál de estos es tu caso..?

Si tienes algo de código ya hecho, compártelo y a ver si solo es necesario añadir algo

el valor deseado es el text3 y valor a cambiar es text1 en este código que pongo agregue otro text, osea text4 para indicarle que valor deseo, pero no logro el resultado deseado.

Private Sub Command2_Click()
Dim int1 As Double
int1 = 0
Do
int1 = int1 + 0.01
Text1 = int1
Text2.Text = Text1.Text * 0.06
Text3 = Text1.Text - Text2.Text
Loop While Text3 = Text4
MsgBox "listo"
End Sub

Te voy a pasar un mail un ejemplo lamentable es eso la aplicación no viene el código fuente ademas de otro archivo en excel donde hago la comparación.

Gracias y espero tus comentarios

Saludos

Pásame el código que tengas, y también tu excel aunque, yo elabore uno, mientras probaba la funcionalidad de dicha función.

[email protected]

Para la noche o mañana podre tener algo mas masticado, a ver si sale algo ^^.

Dim ldNecesito As Double
Dim ldAjusteValor As Double
Dim ldAjusted As Double
Dim ldBase As Double
'Creo a aquí se esta errando en la lógica de la función
'Si se desea copiar la función "Buscar Objetivo", a mi entender
'esta no varia base, varia el ajuste y con ello llega al valor deseado
'Entonces, del form se lee Base y valor deseado, así como lo hace el excel,
'aunque no lo notes, pero en celda con formula (ya que exige una celda con formula)
'es donde lee la base
ldBase = Val(txtBase.Text)
ldNecesito = Val(txtNecesito.Text)
ldAjusted = Round((ldNecesito * 100) / ldBase, 4)
ldAjusted = 100 - ldAjusted
ldAjusted = ldAjusted / 100
ldAjusteValor = Round((ldAjusted * ldBase), 4)
txtAjusteDecimal.Text = Format(ldAjusted, "######0.0000")
txtAjusteValor.Text = Format(ldAjusteValor, "######0.0000")
txtNecesito.Text = Format(ldBase - ldAjusteValor, "#######0.0000")

'Solo tienes que agregar 4 textbox.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas