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