Mirá este código yayo, lo puse en otro foro de esta misma web, para programar una calculadora con funciones mínimas.
----------------------------------------------------------------------------------------------------------------------------
En el formulario, pone cinco commandbutton (del 1 al 5) y no le pongas el caption pues está previsto en el evento load del formulario. Y pone también un textbox.
Luego copia el siguiente código.
----------------------------------------------------------------------------------------------------------------------------
'variables del tipo global a nivel del formulario
'para tener siempre a mano el último numero agregado
Dim ultimonumeroagregado As Double
Dim calcular As Double
'total que pasa por todos los tipos de calculos
Dim total As Double
Private Sub Command1_Click()
'para el caso de la suma se asigna a -calcular- el valor de total mas el ultimo numero agregado
calcular = total + ultimonumeroagregado
'se actualiza el valor de total
total = calcular
'se muestra al usuario el valor calculado
Text1 = calcular
End Sub
Private Sub Command2_Click()
calcular = total - ultimonumeroagregado
total = calcular
Text1 = calcular
End Sub
Private Sub Command3_Click()
'el controlador de errores es por el desbordamiento si se quiere dividir por 0
On Error GoTo msg
calcular = total / ultimonumeroagregado
total = calcular
Text1 = calcular
msg:
Text1 = total
End Sub
Private Sub Command4_Click()
calcular = total * ultimonumeroagregado
total = calcular
Text1 = calcular
End Sub
Private Sub Command5_Click()
'al hacer clic se vacía el text1 y la variable total se pone a 0
Text1.Text = ""
total = 0
End Sub
Private Sub Form_Load()
'necesitas un text1 y 5 commandbutton en un formulario
Text1.Text = "Ingrese aquí los números a calcular"
Command1.Caption = "+"
Command2.Caption = "-"
Command3.Caption = "/"
Command4.Caption = "*"
Command5.Caption = "Limpiar"
Text1.Alignment = 1 '(dígitos a la derecha)
End Sub
Private Sub Text1_Click()
'cada vez que haces foco en el text1 se vacía para permitir ingresar datos
Text1.Text = ""
End Sub
Private Sub Text1_LostFocus()
'cuando dejas de hacer foco en el text1 se actualiza la variable -ultimonumeroagregado-
ultimonumeroagregado = Val(Text1.Text)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
'esta opción es para que el text acepte numeros solamente, punto, coma y retroceso para borrado
Select Case KeyAscii
Case 13
KeyAscii = 0 ' Para que no beepee
Case 44, 46, 8, 48 To 57
'Case 44 (",") o case 46 (".") o case 48 to 57 (todos los números)
Case Else
' No es una tecla numérica, no admitirla
KeyAscii = 0
Beep
End Select
End Sub
----------------------------------------------------------------------------------------------------------------------------
Fijate el funcionamiento, miralo bien, estudialo, y si tenes alguna duda pasamela que nos fijaremos si podemos acercarte alguna respuesta.
Un fuerte abrazo.
Desde Bragado, Provincia de Buenos Aires, Rca. Argentina.