Asi quedo la fecha doy un mes y un año tecleando: 02/2009 y se cambia por Feb-2009 y si pongo una fecha erronea me pone el mensaje de error y se devuelve a capturar la fecha otra vez:
Private Sub MaskEdBox1_GotFocus()
'MaskEdBox1.BackColor = vbRed, vbGreen, vbBlue, vbYellow
MaskEdBox1.Format = ""
MaskEdBox1.Mask = ""
MaskEdBox1.SelStart = 0
MaskEdBox1.SelLength = Len(MaskEdBox1.Text)
'MaskEdBox1.SelLength = 8 'Len(MaskEdBox1.Text)
With MaskEdBox1
.Format = "mmm-yyyy"
.Mask = "##/####"
End With
'''Date
Cadena = Format(Now, "m yyyy") ' Devuelve el día del sistema en este formato: "02/08/2004"
mesNow = Month(Now) ' intMonth = 1
yearNow = Year(Now)
'''Date
End Sub
Private Sub MaskEdBox1_LostFocus()
lafecha = MaskEdBox1.Text
mess = Left(lafecha, 2)
yearr = Right(lafecha, 4)
nummess = Val(mess)
numyearr = Val(yearr)
If (yearNow < numyearr) Or (mesNow < mess And yearNow <= yearr) Then
MsgBox "Fecha errónea", vbCritical, "Validación de Fecha"
MaskEdBox1.SetFocus
End If
End Sub