La Web del Programador: Comunidad de Programadores
 
    Pregunta:  64521 - INPUTBOX CON FORMATO FECHA
Autor:  Luis Ortiz
Tengo un INPUTBOX donde el usuario debe digitar una fecha. Cómo sería el código para que al ingresar la fecha dd/mm/aa el usuario no tenga que escribir los símbolos "/"

  Respuesta:  Fernando Fumero
Si el usuario solo digita los numero y no los /, por ejemplo si deseamos introducir la fecha 02/09/1965, el usuario solo digitará 01091965, luego nosotros le agregamos los / en las posiciones correctas y validamos la fecha, así:

Option Explicit
Dim AUX_FECHA As String

Private Sub Command1_Click()
AUX_FECHA = InputBox("Digite la fecha, solo números." & vbCrLf & "(Ejempo: 02/09/1965 = 02091965)", "Fecha")
MsgBox VALIDAR(AUX_FECHA), vbInformation, "La Fecha"
End Sub

Friend Function VALIDAR(X_FECHA As String) As String
Dim LINEA As String
Dim X_DIA As String
Dim X_MES As String
Dim X_ANO As String
LINEA = ""
If Not IsNumeric(X_FECHA) Then
LINEA = LINEA & "- Solo digite los 8 números." & vbCrLf
Else
If Len(X_FECHA) = 8 Then
X_DIA = Left(X_FECHA, 2)
X_MES = Mid(X_FECHA, 3, 2)
X_ANO = Right(X_FECHA, 4)
If Not IsDate(X_DIA & "/" & X_MES & "/" & X_ANO) Then LINEA = LINEA & "- La fecha está fuera de rango." & vbCrLf
Else
LINEA = LINEA & "- Fecha mal digitada, tienen que ser 8 dígitos." & vbCrLf
End If
End If
If LINEA = "" Then VALIDAR = X_DIA & "/" & X_MES & "/" & X_ANO Else VALIDAR = LINEA
End Function

Cortesía de FUMERO CORP. - [email protected] -