Como crear una calculadora en visual basic

Resuelto/Cerrado
-
 ada -
Hola,NECESITO SAVER COMO CREAR EL EXEL UNA CALCULADORA CON VISUAL BASIC SI ALGUIEN SABE LOS CODIGOS PORFA DIGANMELOS
Consulta también:

6 respuestas

Necitas crea un caja de texto
Una matriz diez botes de comandos para los numero
Otra matriz de cuatro botones de comando para los operadores (+,-,/,*)
Un comando para nueva operacion
Un comando para el resultado (=)


CODIGO DEL FORMULARIO

Private Sub Igual_Click()
Select Case signo 'la variable signo te dice si sumas(0) si restas(1)......
Case 0
Text1.Text = suma(anterior, Val(Text1.Text)) 'llamada a la función suma
Case 1
Text1.Text = resta(anterior, Val(Text1.Text))

Case 2
Text1.Text = multiplicar(anterior, Val(Text1.Text))
Case 3
Text1.Text = Dividir(anterior, Val(Text1.Text))
End Select
End Sub

Private Sub Nueva_Click()
Text1.Text = ""
End Sub

Private Sub Operador_Click(Index As Integer)
signo = Index 'si index es 0 sumas, si es 1 restas......
anterior = Val(Text1.Text)
Text1.Text = ""

End Sub

Private Sub Numero_Click(Index As Integer)
Text1.Text = Text1.Text + Numero(Index).Caption
End Sub

Private Function suma(Numero As Integer, Operador As Integer) As Integer
suma = Numero + Operador
End Function

Private Function resta(Numero As Integer, Operador As Integer) As Integer
resta = Numero - Operador
End Function

Private Function multiplicar(Numero As Integer, Operador As Integer) As Integer
multiplicar = Numero * Operador
End Function

Private Function Dividir(Numero As Integer, Operador As Integer) As Integer
Dividir = Numero / Operador
End Function

Private Sub Salir_Click()
Unload Me
End Sub
No me funcionaa...!
si quereis q os pase el proyecto enviad un mensaje a pladraw08@hotmail.com
Soy nuevo en vb, por lo tanto el codigo que publicaste para la calculadora me produce un error, el error dice de la siguiente manera: "el tipo de argumento de ByRef no coincide", este error aparece cuando le doy al boton de Igual (=), no se que hacer por favor necesito tu ayuda. Gracias por tu atencion...
Hola yo tambien soy nueva en visual Basic pues me sale el mismo error ByRef no coicide y es en la palabra anterior no se si si se puede utilizar otra palabra en lugar de esta.
Hola chico me encanta tu calculadora cientifica pero no me sale so se si tenga que ver el winsows tambien porque yo tengo el windows Seven
como puedo crear una calculadora cientifica en vb? Agradeceria ejemplos y manuales. Saluxos
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.
> Elinv
aki t dejo un codigo con 3 textos y 4 command

Private Sub Command1_Click()
Text3 = Val(Text1) + Val(Text2)
End Sub

Private Sub Command2_Click()
Text3 = Val(Text1) - Val(Text2)
End Sub

Private Sub Command3_Click()
Text3 = Val(Text1) / Val(Text2)
End Sub

Private Sub Command4_Click()
Text3 = Val(Text1) * Val(Text2)
End Sub

ten encuanta de los command.. el 1ro es para la suma

el 2do para la resta

el 3ro para la division

y el 4to para la multiplicacion.....

los 3 text... los dos primeros son para ingresar el valor a calcular y el 3ro para mostrar el resultado
perdon pero no entendi!!
hola sabes yo ya lo eh puesto pero me gustaria saber porque no me sale el resultado y si puedes ayudarme que el resulktado se mueste en un label bue vos sos genial cuidate my correo sos love_with_dead@hotmail.com
no se porque no lo entienden mas claro no puede estar
quizá no sepa comó hacer uno en visual basic, pero inventé uno en HTML y Javascript que funciona en cualquier computador. Aquí está el código, copialo en Bloc de Notas:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<title>Calculadora</title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
<script language="Javascript">
var cal=0
var cal2=0
var currentuse=" "
function chooseUse(use)
{
document.getElementById('use').innerHTML=use
currentuse=use
}
function insertNumber(number)
{
if (currentuse == " ")
{
cal=cal*10+number
document.getElementById('number1').innerHTML = cal
}
else
{
cal2=cal2*10+number
document.getElementById('number2').innerHTML = cal2
}
}
function getResult()
{
if (currentuse == 'x')
{
document.getElementById('number1').innerHTML =cal*cal2
cal=cal*cal2
cal2=0
document.getElementById('number2').innerHTML = " "
}
if (currentuse == ':')
{
document.getElementById('number1').innerHTML =cal/cal2
cal=cal/cal2
cal2=0
document.getElementById('number2').innerHTML = " "
}
if (currentuse == '-')
{
document.getElementById('number1').innerHTML =cal-cal2
cal=cal-cal2
cal2=0
document.getElementById('number2').innerHTML = " "
}
if (currentuse == '+')
{
document.getElementById('number1').innerHTML =cal+cal2
cal=cal+cal2
cal2=0
document.getElementById('number2').innerHTML = " "
}
}
</script>
</head>
<body bgcolor="#FFFFFF">
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>

<br>
<div align="center"><span style="border-color: #000000; border-width: 1px; border-style: solid; background-color: #E9E9E9;"> <span id="number1">0</span> <span id="use"> </span> <span id="number2"> </span> </span></div>
<div align="center">
<table>
<tr bgcolor="#E9E9E9">
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="chooseUse('x')" style="background-color: #D9D9D9; width: 25px;">x</button> 
<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="chooseUse(':')" style="background-color: #D9D9D9; width: 25px;">:</button> 
<div style="font-size: 3px;"><br></span>

</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="chooseUse('+')" style="background-color: #D9D9D9; width: 25px;">+</button> 
<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="chooseUse('-')" style="background-color: #D9D9D9; width: 25px;">-</button> 
<div style="font-size: 3px;"><br></span>
</td>
</tr>
<tr bgcolor="#E9E9E9">
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>

 <button onclick="location.href='calculator.html'" style="background-color: #D9D9D9; width: 25px;">C</button> 
<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(1)" style="background-color: #D9D9D9; width: 25px;">1</button> 
<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(2)" style="background-color: #D9D9D9; width: 25px;">2</button> 
<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">

<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(3)" style="background-color: #D9D9D9; width: 25px;">3</button> 
<div style="font-size: 3px;"><br></span>
</td>
</tr>
<tr bgcolor="#E9E9E9">
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="getResult()" style="background-color: #D9D9D9; width: 25px;">=</button> 
<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(4)" style="background-color: #D9D9D9; width: 25px;">4</button> 

<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(5)" style="background-color: #D9D9D9; width: 25px;">5</button> 
<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(6)" style="background-color: #D9D9D9; width: 25px;">6</button> 
<div style="font-size: 3px;"><br></span>
</td>
</tr>
<tr bgcolor="#E9E9E9">
<td style="border-width: 1px; border-style: solid; border-color: #000000;">

<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(7)" style="background-color: #D9D9D9; width: 25px;">7</button> 
<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(8)" style="background-color: #D9D9D9; width: 25px;">8</button> 
<div style="font-size: 3px;"><br></span>
</td>
<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(9)" style="background-color: #D9D9D9; width: 25px;">9</button> 
<div style="font-size: 3px;"><br></span>
</td>

<td style="border-width: 1px; border-style: solid; border-color: #000000;">
<span style="font-size: 2px;"><br></span>
 <button onclick="insertNumber(0)" style="background-color: #D9D9D9; width: 25px;">0</button> 
<div style="font-size: 3px;"><br></span>
</td>
</table>
<noscript>Oops! No puedes usar esta calculadora! Usá un navegador nuevo.</noscript>
</div>
</body>
</html>
y guardalo cómo calculator.html.
TE DEJO EL CODIGO DE LA CALCULADORA EN VB

Obiamente tenes que poner 1 label y 2 text box, y en el codigo del boton le pones

Private Sub Command1_Click()
Label1 = Val(Text1) + Val(Text2)
End Sub

Lo modificablke es: Donde esta el + podes poner - o * o / lo que quieras que haga
Y despues los nombres que tengas en los text y los label
> hortigaaa
Si pero hay un problema en ese codigo porke el usuario podria no meter valores darle a dividir y da error la aplicacion, igual ke si divides por 0.Habria ke hacer un codigo de errores , es una sugerencia xd.
> hortigaaa
como puedo agregar la raiz cuadrada en el codigo de vb
Buenas. Veras tengo que hacer una calculadora en vb y me preguntaba cual era el codigo para que al introducir los numeros x ejemplo 025482 que si le doy al 0 no aparezca este si no que escriba directamente 25482 sin el 0.. como lo hago?
gracias
no entiendo de q hablan
Variables:
Dim OP As String
Dim a, b, resultado As Double
Dim c As Double
Numeros:
1:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "1"
c = False
2:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "2"
c = False
3:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "3"
c = False
4:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "4"
c = False
5:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "5"
c = False
6:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "6"
c = False
7:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "7"
c = False
8:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "8"
c = False
9:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "9"
c = False
0:
If c = True Then
Text1.Text = ""
End If
Text1.Text = Text1.Text + "0"
c = False
FORMULAS DE LOS OPERADORES:
Suma:
a = Text1.Text
Text1.Text = ""
OP = "SUMA"
Resta:
a = Text1.Text
Text1.Text = ""
OP = "RESTA"
Multiplicación:
a = Text1.Text
Text1.Text = ""
OP = "MULTIPLICACION"
DIVISION:
a = Text1.Text
Text1.Text = ""
OP = "DIVISION"
FORMULA IGUAL:
b = Val(Text1.Text)
Select Case OP
Case "SUMA"
resultado = a + b
Text1.Text = resultado
Case "RESTA"
resultado = a - b
Text1.Text = resultado
Case "MULTIPLICACION"
resultado = a * b
Text1.Text = resultado
Case "DIVISION"
resultado = a / b
Text1.Text = resultado
End Select
FORMULA PUNTO :
Text1.Text = Text1.Text + "."
FORMULA DE BORRAR CE
Text1.Text = ""
FORMULA DE OFF:
END




ESPERO QUE ESTE DATO TE SIRVA ^^ !

este, funciona de tal palo, jajaja, esta bueno, jajaja, pero deberias mejoprarlo, ok, chau...
men necesito tambien el de retroceso m+,
ms, mr ,mc, sqrt ,%, 1/x,
Los operando con el punto
Se puede hacer miles de puntos, podrias hacer que solo se pueda presionar una vez.
arregle lo de los varios puntos que se puede hacer. Ahora cuando da un resultado y se quiere volver a hacer otro calculo sin presionar el limpiar el resultado se mantiene ahi
como haces para que la coma no se repita cuando la pulsas varias veces?
otra cosa: si marcas el 0 primero, como hacés que los ceros que van a la izquierda no se coloquen en pantalla?
como cambio el color de la calculadora?
gracias y buenos días!
PD te mando el código de retroceso:
Dim Contenido As String
Contenido = Pantalla.Text
If (Contenido.Length() > 0) Then
Pantalla.Text = Contenido.Substring(0, Contenido.Length() - 1)
End If
y la pantalla del formulario ponganla siiiiiii
es muy bueno Gracias DLB!! :DDDDDDD
espero ii si agarre muii bien xD