Excel - Atasco

 
Vista:

Atasco

Publicado por Gumer (6 intervenciones) el 29/08/2006 18:50:48
Estoy haciendo un curso de Visual Basic que he encontrado en la red en el que todas las secuencias explicadas tienen algún error intencionado o le faltan cosas a fin de que el que lo hace piense y apenda de ese modo. He avanzado hasta este punto en el que me he quedado atascado. Debe ser aluna tontería que me falta o me sobra pero llevo todo el día haciendo pruebas y no hay forma de que funcione correctamente. No lo explico, ya que es algo muy simple. Ahí va la macro:

Sub Ejemplo_18()
'NO FUNCIONA

Dim Signo As String
Dim Valor1 As Single, Valor2 As Single, Total As Single
Dim Continuar As Boolean

Valor1 = Val(InputBox("Entrar el Valor1", "Entrar"))
Valor2 = Val(InputBox("Entrar el Valor2", "Entrar"))
Signo = InputBox("Signo", "Entrar")
Continuar = True

ActiveSheet.Range("A1").Value = Valor1
ActiveSheet.Range("A2").Value = Valor2
ActiveSheet.Range("A3").Value = Signo
ActiveSheet.Range("A4").Value = Continuar

If Not IsNumeric(ActiveSheet.Range("A1")) Or Not IsNumeric(ActiveSheet.Range("A2")) Or IsEmpty(ActiveSheet.Range("A1:A3")) Then
MsgBox Prompt:="Debe entrar números en A1 y A2 y un signo (+,-,x, : ) en A3", Title:="ERROR"

Continuar = False

Else
Select Case Signo
Case "+"
Total = Valor1 + Valor2
Case "-"
Total = Valor1 - Valor2
Case "*"
Total = Valor1 * Valor2
Case "/"
Total = Valor1 / Valor2
Case Else
Total = 0
End Select
ActiveSheet.Range("A5").Value = Total
End If
End Sub

Muchas gracias anticipadas por vuestras rspuestas.

Gumer
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
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Atasco

Publicado por Abraham Valencia (2415 intervenciones) el 29/08/2006 19:39:49
Hola. dandole una revision algo rapida, veo que tu problema (el problema) es que no diferenciaba texto de numeros. Mira esta correccion y cualquier duda enviala: (no esta ideal, pero esta mejor y cumple su funcion)

Sub Ejemplo_18()

Dim Signo As String
Dim Valor1 As String, Valor2 As String, Total As Single
Dim Continuar As Boolean

Valor1 = (InputBox("Entrar el Valor1", "Entrar"))
Valor2 = (InputBox("Entrar el Valor2", "Entrar"))
Signo = InputBox("Signo", "Entrar")
Continuar = True

ActiveSheet.Range("A1").Value = Valor1
ActiveSheet.Range("A2").Value = Valor2
ActiveSheet.Range("A3").Value = Signo
ActiveSheet.Range("A4").Value = Continuar

If Not IsNumeric(ActiveSheet.Range("A1")) Or Not IsNumeric(ActiveSheet.Range("A2")) Or IsEmpty(ActiveSheet.Range("A1:A3")) Then
MsgBox Prompt:="Debe entrar números en A1 y A2 y un signo (+,-,x, : ) en A3", Title:="ERROR"

Continuar = False

Else
Select Case Signo
Case "+"
Total = Val(Valor1) + Val(Valor2)
Case "-"
Total = Val(Valor1) - Val(Valor2)
Case "*"
Total = Val(Valor1) * Val(Valor2)
Case "/"
Total = Val(Valor1) / Val(Valor2)
Case Else
Total = 0
End Select
ActiveSheet.Range("A5").Value = Total
End If
End Sub

Abraham
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:Atasco

Publicado por Gumer (6 intervenciones) el 30/08/2006 19:20:35
Gracias
Funciona a la perfección pero hay algo que se me escapa.
[If Not IsNumeric] funciona sólamente con [string]?
o bien es [MsgBox Prompt] la que sólo responde con aquéllo?
¿Acaso son ambas órdenes las que deben hacer referencia siempre a texto?

Saluditos desde España

Gumer
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
Imágen de perfil de Abraham Valencia
Val: 313
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

RE:Atasco

Publicado por Abraham Valencia (2415 intervenciones) el 30/08/2006 23:26:55
Hola. En realidad les pongo string, ya que a esos inputbox, uno tiene la potestad de ingresar cuaquier caracter, entonces si le pongo una variable de un tipo solo numerico podria generar errores y detenerse la rutina.

Abraham
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:Atasco

Publicado por Gumer (6 intervenciones) el 31/08/2006 18:20:33
Muchas gracias por la aclaración

Gumer
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