Código En TextBox solo para números

Talcomo dice el titulo, tengo los 6 TextBox con código para que solo acepten números
'Este campo solo puede ser numérico
If Not IsNumeric(TextTelefono) Then
MsgBox prompt:="Debe ingresar SOLO valor numérico, en el campo de TELFONO", Buttons:=vbInformation + vbOKOnly, Title:="CARACTER NULO"
TextTelefono = Empty
TextTelefono.SetFocus
Exit Sub
End If
Este codigo hace co nque en las columnas correspondientes no entre el 0(cero) al inicio de un numero, XE 0242569
Al insertar los datos en la hoja por medio de un form, solo introduce 242569 el cero no lo introduce en la celda.
Digo que es el código porque ya hice de todo con el formato de las celdas (columnas) Texto, General, números, PERSONALIZADA, etc etc y siempre sucede lo mismo
Algo le faltará a este código, o algo le sobra
¿Alguna sugerencia?
Gracias

1 respuesta

Respuesta
-1
Si quieres que un valor que un valor "numerico" comience con cero, entonces el valor no es numérico, sino texto, osea números con formato texto (string), acuérdate que los ceros a la izquierda "no valen".
Entonces ¿qué hago a ese código? ¿Qué le agrego para que acepte el cero? Porque el cero lo tiene que mostrar en la celda y tengo que tener el textbox solo para números por si acaso alguna equivocación de la persona encargada de insertar datos
Crea una variable de tipo String, algo asi:  Dim Num as String
Pasas el valor del TextBox a la variable, sin alterar el codigo que pusiste, algo asi:
Num = TexTelefono
Creo que debe funcionar así.
Ya boto código por los ojos
Di progreso a tu recomendación, así hice
declare variable Dim Num as String al comienzo (Option Explicit)
If Not IsNumeric(TextID) Then
Num = TexTelefono
MsgBox prompt:="Debe ingresar SOLO valor numérico, en el campo ID", Buttons:=vbInformation + vbOKOnly, Title:="CARACTER NULO"
'Num = TexTelefono 'Tambien hice la prueba colocando tu linea aqui
TextID = Empty
TextID.SetFocus
Exit Sub
End If
no me sirvió
Prube con el codigo siguiente que es el que tiene los demas TextIDs y TextTelf, son 4 más
Estos cuatro funcionan muy bien con este código pero a modo de prueba hice lo mismo en el TextID y TextTelf y no funciona
Private Sub TextID_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Not (KeyAscii >= 48 And KeyAscii <= 57) Then
KeyAscii = 0
MsgBox "Debe ingresar SOLO valor numerico, en el campo 2º ID", vbOKOnly + vbInformation, Title:="CARACTER NULO"
End If
End Sub
Ok, ya lo probé y función como quieres, al pasarlo a la celda de la hoja de calculo, concatena este carácter "'", así:
Dim Num As String
Num = TextBox1.Text
Range("A1") = "'" & Num
Probado, funciona...
Amigo jerryeagle, lo cierto es que mi excel no quier nada conmigo, ya no se cuantas pruebas he echo para que acepte el cero.
La cosa está en las columnas C y DE de los primeros ID y TELÉFONO.
Si coloco el numero MANUALMENTE, si acepta el cero y no lo elimina al cambiar de celda, se queda, PERFECTO, pero si es enviado desde el TextBox del formulario, NO lo acepta.
Las demás aceptan el cero sin problemas. Ya hice una copia de toda la columna E que acepta los ceros enviados desde el TextBox y pegada en C y DE con la opción de pegado especial "formato de origen" y nada, no quier aceptar los datos ddel textbox.
Te pregunto: ¿Puedo enviarte el libro para que tu mismo lo aibras y ejecutes? Para así darte cuenta tu mismo de l oque pueda estar pasando. Si es SI, dame tu mail y te lo envío yaaaaaa
Abrir el Formulario por el button de la hoja1 y al menos editar uno odos para que te des cuenta y puedas (si se puede) darme una solución
Quiero aclararte que CUANDO lo tenga listo, ninguna secretaria puede ver las hojas, se ocultaran con PASSW. Los datos serán solo visualisables por medio de los ComboBox que llenan los TextBox al editar o eliminar, nadie va a tener visión con las hojas, por eso nadie puede ingresar manualmente datos y el passw lo tendrá el administrador o gerente. Por eso ya ves que algún error de tecla en los TextBox de IDs, Teléfono y TELF, no pueden ser más que números y cero adelante en los IDs y en los Teléfono y Telf algunos números aquí ya tiene cero adelante, Ej. ID 0243 y Numero Telf 0654239. Para Imprimir la o las hojas ya tengo la rutina aunque, le falta para seleccionar solo un rago determinado de contactos el rango que uno quiera desear imprimir.
Pareciera difícil (al menos para mí) por mi escaza experiencia, para ustedes no me aparece perooo, no fui lo suficiente capaz de recibir esa ayuda que está a vuestro alcance
Solo le cambié como prueba la línea del cmdEditar y cmdInsertar y resultó
Range("d" + celda) = Val(Round(TextTelefono, 0))  POR Range("d" + celda) = TextTelefono 
Si pasó a aceptar el cero, porque el malo es que no lo transmitía el comando Editar ni el Insertar por esas líneas que son para evitar los decimales pero, al hacer eso, no permiten la transmisión de los ceros a la izquierda, NO es falta de formato en las celdas y si la misma programación del objeto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas