Sumar dentro de un textbox

Tengo un textbox y quiero ingresar por ejemplo 1+3+6-2 y que apretando enter me de el resultado 8 en el mismo textbox. Alguien que me pueda ayudar

Respuesta
2

No tengo ni idea de Excel, pero seria conveniente que dijeras si los "sumandos" van a ser siempre menores de 10, por ejemplo, 6+4+3+8, o si pueden ser 15+7+10+2. También convendría que dijeras si siempre van a ser 4 sumandos o pueden ser más o menos, ya que soluciones hay mil.

Por ejemplo, supongamos que tienes un cuadro de texto Texto4, puedes crear una macro( creo que en Excel son macros)y poner

Private Sub Texto4_AfterUpdate()
Texto4 = CByte(Left([Texto4], 1)) + CByte(Mid([Texto4], 3, 1)) + CByte(Mid([Texto4], 5, 1)) + CByte(Right([Texto4], 1))
End Sub

De forma que si escribes 1+2+3+4 cuando pulses Enter( o te vayas o otro control) te hace la suma de esos dígitos y te aparece un 10.

Pero como te decía hay mil soluciones.

Hola juliqan es en excel, lo que necesito es que función como en las celadas, funcione como una calculdor pueda sumar o restar y me tire el total

En ese caso, te aconsejaría que le preguntaras directamente a Dante Amor o Elsa Matilde, son los auténticos fieras de Excel

2 respuestas más de otros expertos

Respuesta
3

Tampoco soy experto en Excel pero para no responder incoherencias consulté ChatGTP me ha dado la solución.

Puede lograr esta funcionalidad en VBA utilizando la función Evaluate, que permite evaluar expresiones matemáticas ingresadas en un Textbox

Le dejo el código de ejemplo:

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    ' Verifica si se presionó la tecla Enter
    If KeyCode = vbKeyReturn Then
        ' Intenta evaluar la expresión matemática
        On Error Resume Next ' Ignora errores si la expresión no es válida
        TextBox1.Value = Evaluate(TextBox1.Value)
        On Error GoTo 0 ' Restablece el manejo de errores
    End If
End Sub

Explicación del Código

  • KeyDown: Detecta si se presiona una tecla cuando el cursor está en el Textbox.
  • KeyCode = vbKeyReturn: Verifica si la tecla Enter fue presionada.
  • Evaluate: Convierte la expresión en una operación matemática.
  • On Error Resume Next: Evita errores si la expresión es inválida.

Lo probé y no solamente puede sumar, puede combinar algo como 2*9-10/2 y al dar Enter da 13.

Respuesta
1

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas