Ver Mensaje Individual
  #13 (permalink)  
Antiguo 06/10/2010, 00:02
Avatar de erbuson
erbuson
 
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 14 años, 5 meses
Puntos: 53
Respuesta: Ayuda con Condiciones

Hola amigo Gakex, si pruebas tu Sub con el siguiente escenario, veras que tiene un problema:

Sub ejemplo()

x = InputBox("escribe un numero")
' Si es nulo, salimos de la función
If x = "" Then Exit Sub

' Si no es un número avisamos del error y reiniciamos la función
If Not IsNumeric(x) Then
MsgBox "Ingresa Solo Numeros", 1 + 48
call ejemplo
End If

' Si está entre 1 y 10 aplicamos el valor
If x >= 1 And x <= 10 Then
Range("A1").Select
ActiveCell.FormulaR1C1 = x
Else
' En caso contrario avisamos del error y reiniciamos la función
MsgBox "Escoje un numero entre el 1 y el 10 ", 1 + 48
call ejemplo
End If

End Sub


Supongamos que el usuario en primer lugar teclea una letra, la función devuelve el aviso de error y llama a ejemplo, pero no olvidemos que cuando termina con esta segunda llamada la primera continua donde se había quedado por lo que efectúa la siguiente comparación avisando de que escoja un numero entre 1 y 10 y vuelve a llamar a ejemplo con lo cual para salir de la misma debes cancelar distintas veces la pregunta.

Como comentaba en mi mensaje las llamadas a SUB recursivas deben controlarse mucho y tener muy claro que funcionaran.

Un saludo
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...