Error 13 en tiempo de ejecucion

19/11/2005 - 18:49 por Edison Torres | Informe spam
Hola les cuento tengo un formulario hecho en VBA para excel y estoy
utilizando un
TextBox pero no se como hacer que solo me acepte numeros (maximo 10 digitos)
y si el usuario ingresa espacios en blanco o cualquier palabras que le envie
un mensaje indicando que el campo es numerico y si ingresa el 0(cero) que le
envie un mensaje indicando "Campo no puede ser menor o igual a cero"

Por favor si es mucho pedir me pueden ayudar con el codigo en VBA para Excel

Gracias por todo
 

Leer las respuestas

#1 Héctor Miguel
20/11/2005 - 07:32 | Informe spam
hola, Edison !

... un formulario... utilizando un TextBox... como hacer que solo me acepte numeros (maximo 10 digitos)
... si el usuario ingresa espacios... o... palabras... le envie un mensaje indicando que el campo es numerico
... si ingresa el 0 (cero)... un mensaje indicando "Campo no puede ser menor o igual a cero" [...]



1) en el grupo de vba, Emilio ya ha respondido a la 'aceptacion' de SOLO numeros [0 a 9] :))
en el modulo de codigo del formulario ==Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub

2) para que el textbox 'acepte' un maximo de 10 caracteres [eliminadas ya las literales]...
-> [con el textbox seleccionado]... en la ventana de propiedades establece la propiedad MaxLenght en 10

3) para el resto de las condiciones que necesitas [p.e.]...
-> puedes 'impedir' que el usuario 'abandone' el cuadro de texto en tanto no esten completos los caracteres
-> utiliza en el modulo de codigo del formulario el evento 'exit' [p.e.]

a) si no quieres que lo deje incompleto...
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 < 1 Then _
MsgBox "El numero debe ser mayor que CERO !!!": Cancel = True: Exit Sub
If Len(TextBox1) < TextBox1.MaxLength Then _
MsgBox "Caracteres incompletos !!!": Cancel = True
End Sub

b) si quieres 'darle la oportunidad' de dejarlo 'a medias' [si no interfiere con otras partes del codigo]...
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox1 < 1 Then _
MsgBox "El numero debe ser mayor que CERO !!!": Cancel = True: Exit Sub
If Len(TextBox1) < TextBox1.MaxLength Then _
Cancel = MsgBox( _
"No se han completado los " & TextBox1.MaxLength & _
" caracteres necesarios..." & vbCr & _
"Confirmas que se puede cotinuar ???", _
vbOKCancel + vbInformation + vbDefaultButton2, "Aviso !!!") = vbCancel
End Sub

si cualuier duda [o informacion adicional]... comentas ?
saludos,
hector.

Preguntas similares