Visual Basic - suma en un text ?

Life is soft - evento anual de software empresarial
 
Vista:

suma en un text ?

Publicado por rick (13 intervenciones) el 05/01/2006 17:45:04
si alguien me puede ayuder le agradesco mucho
tengo un text1.text y quisiera ingresar por ej..50+50+150+50+50+50 pesos y al apretar enter
me tire la suma de todos los valores...
se puede hacer esto ????
como hago
desde ya muchas 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

Descarga este proyecto...

Publicado por Zoto (55 intervenciones) el 05/01/2006 18:25:08
Hola rick.

Hace un tiempo andaba buscando algún código interesante y, casualmente, me encontré con este:

http://www.planetsourcecode.com/vb/scripts/ShowCode.asp?txtCodeId=48154&lngWId=1

Se trata de una calculadora capaz de evaluar complicadas expresiones matemáticas. Seguro que te ayudará en algo para hacer lo que deseas.

Hasta pronto,

Zoto
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

RE:suma en un text ?

Publicado por Jorge (231 intervenciones) el 05/01/2006 18:30:19
Si es solo suma el codigo seria

Private Sub Sumar()
Dim PosIni As Integer, PosFin As Integer
Dim Numero As Integer
PosIni = 1
PosFin = InStr(PosIni, Text1.Text, "+")
While PosFin <> 0
Numero = Numero + Val(Mid(Text1.Text, PosIni, PosFin - PosIni))
PosIni = PosFin
If InStr(PosIni + 1, Text1.Text, "+") <> 0 Then
PosFin = InStr(PosIni + 1, Text1.Text, "+")
Else 'Ultimo caso
Numero = Numero + Val(Mid(Text1.Text, PosFin + 1, Len(Text1.Text) - PosFin))
PosFin = InStr(PosIni + 1, Text1.Text, "+")
End If
Wend
MsgBox (Numero)
End Sub

Para que detecte la tecla enter lo que debes hacer es
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Sumar
End Sub

Espero que te sirva
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

RE:suma en un text ?

Publicado por Ramón (90 intervenciones) el 05/01/2006 20:09:25
Esto me parece que ya lo contesté hace algún tiempo. Lo que quieres se puede hacer de dos formas:
1ª Asignas a tu proyecto la Referencia Microsoft Excel xx.x Object Library y en el evento KeyPress del Text le pones:
Dim Resultado As Double
If KeyAscii = 13 Then
Resultado = Evaluate(Text1.Text)
Text1.Text = Resultado
SendKeys "{tab}"
End If
2ª Añades al proyecto el componente Microsoft Script Control, colocas uno en el Formulario y en el mismo evento del Text le pones:
Dim Resultado As Double
If KeyAscii = 13 Then
Resultado = Me.ScriptControl1.Eval(Text1.Text)
Text1.Text = Resultado
SendKeys "{tab}"
End If
Por supuesto, lo puedes mejorar formateando la variable Resultado y controlando los errores en la fórmula (como que el usuario no pueda introducir caracteres, etc,)
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

RE:suma en un text ?

Publicado por Cecilia Colalongo (3116 intervenciones) el 06/01/2006 13:56:00
Puedes utilizar el ScriptControl y el método Eval:

Text1.Text = ScriptControl1.Eval(Text1.Text)

Lo colocas en el evento que te convenga mejor, LostFocus o Valid.

En http://msdn.microsoft.com/library/en-us/dnexpvb/html/usingscriptcontrolmethods.asp tienes documentación del control.
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