none
¿Como sumar y restar numeros dentro de textbox ?

    Question

  • Estoy haciendo una aplicacion en vb.net y lo que quiero es que si en una caja de texto pongo eje. 4+5-2 en otro texbox me ponga 7 emulando masomenos lo que hace excel tengo este codigo pero no va del todo bien

      Dim F As Long
            Dim Nombre As String
            Dim Arreglo() As String
            Dim x, y, z As Integer
            Try
                Nombre = txtVentasOp.Text
                ReDim Arreglo(Len(Nombre))
                For F = 1 To Len(Nombre)
                    Arreglo(F) = Mid$(Nombre, F, 1)

                    If Arreglo(F) <> "+" And Arreglo(F) <> "-" Then
                        x = Arreglo(F)
                        y = y & x
                    ElseIf Arreglo(F) = "+" Then
                        z = z + y
                        y = 0
                    ElseIf Arreglo(F) = "-" Then
                        If z > y Then
                            z = z - y
                        ElseIf z < y Then
                            z = y - z
                        End If
                        y = 0
                    End If

                Next F

                txtVentasRe.Text = z
            Catch Ex As Exception
                MsgBox("Error de Ejecucion Trate de nuevo")
            End Try

    Monday, August 20, 2012 9:10 PM

Answers

  • "Marcos Alderete" preguntó:

    > lo que quiero es que si en una caja de texto pongo
    > eje. 4+5-2 en otro texbox me ponga 7 emulando mas
    > o menos lo que hace excel.
    >

    Hola, Marcos:

    Échale un vistazo a la función Eval que publiqué en la siguiente conversación:

    Solución de Fórmulas matemáticas

    Un saludo


    Enrique Martínez
      [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.

    Tuesday, August 21, 2012 6:44 AM

All replies

  • Hola amigo,

    Yo hice algo parecido pero para filtros de una aplicación a la BD. Mi solución fue separar por espacios las cosas, en tu caso por ejemplo 3 (espacio) + (espacio) 4; luego le haces un split y guardas en un array de string el 3, el + y el 4. Por último con IF puedes determinar cuáles son operadores (ejemplo: if cadena(i) = "+") y cuáles son los números para las operaciones (ejemplo: if not cadena(i) = "+" ). 

    Creo que se entiende la idea, sino con gusto la puedo ampliar para ti. Espero que te ayude!
    Tuesday, August 21, 2012 4:35 AM
  • "Marcos Alderete" preguntó:

    > lo que quiero es que si en una caja de texto pongo
    > eje. 4+5-2 en otro texbox me ponga 7 emulando mas
    > o menos lo que hace excel.
    >

    Hola, Marcos:

    Échale un vistazo a la función Eval que publiqué en la siguiente conversación:

    Solución de Fórmulas matemáticas

    Un saludo


    Enrique Martínez
      [MS MVP - VB]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.

    Tuesday, August 21, 2012 6:44 AM