Excel VBA cambio de formatos en los TextBox

Estoy haciendo un sencillo programa en Excel 2003 con diferentes formularios conectados entre ellos etc. Todo esta saliendo bien pero me gustaría, por problemas de estética, poner en algunos TextBox sus respectivos formatos, por ejemplo si es numero de teléfono debería quedar algo como (305) 288-0012 si es una fecha 11/01/2012 y si es un código postal 33177-00 esto en los texbox del formulario, ¿qué código puedo usar para que al entrar los números el usuario los vea de esas formas?

1 Respuesta

Respuesta
1

Utiliza lo siguiente

.NumberFormat = "ddmmyyyy"

Prueba y me dices

Saludos. Dam

Me puedes decir el código completo?

Private Sub TextBox3_Change()

End Sub

Asi se ve predeterminadamente.

Gracias

Funciona después de la captura.

Tienes que poner un botón de comando, y después de presionar el commandbutton, se actualizan los formatos

Private Sub CommandButton1_Click()
TextBox1.Value = Format(TextBox1.Value, "(000) 000-0000")
End Sub

Prueba y me comentas

Saludos. Dam

No entiendo que tiene que ver un ese CommandButton, no creo que sea necesario usar un botón para hacer eso, no quiero que haya que presionar un botón para que aparezca el formato, lo he visto en mi propio trabajo los programas están hecho con programación Access que es lo mismo, y solo te paras arriba del TextBox y escribes el numero, al pasar al próximo textbox el anterior toma el formato, ya sea de fecha o teléfono o lo que sea sin presionar ningún botón...

Tienes razón, te mando los de números

Teléfono

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1.Value = Format(TextBox1.Value, "(000) 000-0000")
End Sub

Código postal

Private Sub TextBox3_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox3.Value = Format(TextBox3.Value, "00000-00")

End Sub

El de fecha lo estoy revisando.

Saludos. Dam

Este sería el código para el formato de la fecha en dd/mm/aaaa, cualquier valor diferente te mandará un mensaje.

La fecha propiamente, de un número no lo puedes pasar a fecha, por ejemplo, si tienes formato de fecha en una celda de excel y escribes el número 1, en automático excel te pone 01/01/1900, y si escribes el número 05102012 (suponiendo 5-oct-2012), excel no lo reconoce y te pone ###########, porque intenta pasar el número de serie 5102012 (cinco millones ciento dos mil doce), a una fecha valida.
Un fecha valida para excel es, por ejemplo, el día de hoy 3 de noviembre de 2011, para excel el número de serie de esa fecha es 41216, si escribes en una celda con formato de fecha 41216, te va a convertir a 03/11/2012. Y viceversa, si una celda con formato de fecha, con la fecha de hoy 03/11/2012, le cambias el formato a número, te regresa el 41216.
Por eso te mando una rutina, para tomar, por ejemplo, la fecha 05102012 y convertirla a 05/10/2012.
Espero te ayuden los tips.

Private Sub TextBox2_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Valida formato de fecha en un textbos
'Por.Dam
On Error Resume Next
fechaentrada = TextBox2.Value
fecha = TextBox2.Value
For i = 1 To 10
    If Mid(fecha, i, 1) = "/" Or Mid(fecha, i, 1) = "-" Or Mid(fecha, i, 1) = "." Then
        fecha = Left(fecha, i - 1) & Mid(fecha, i + 1)
    End If
Next
If Len(fecha) <> 8 Then
    MsgBox "fecha invalida " & fechaentrada
    Cancel = True
Else
    fecha = Left(fecha, 2) & "/" & Mid(fecha, 3, 2) & "/" & Right(fecha, 4)
    fecha = DateValue(fecha)
    If Err.Number <> 0 Then
        MsgBox "fecha invalida " & fechaentrada
        Cancel = True
    Else
        TextBox2.Value = fecha
    End If
End If
End Sub

Ahora si hermano de muchísima ayuda... me sirve bastante pero te comento algo curioso, hoy cuando estaba en el trabajo me fije que cuando me paro encima de uno de esos TextBox de los programas de mi empresa enseguida sale el formato mas o menos asi __/__/____ y entonces comenzamos a escribir encima de eso y los números se van colocando en su lugar no es necesario salirse del textbox para que adquiera esta forma y se ve bastante bonito asi, si puedes encontrar un código que haga eso me lo pasas es opcional porque lo otro también me sirve solo que de esta forma se vería mejor :)
mi email es: [email protected]
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas