Infelizmente não podemos confiar no usuário😀
Devemos sempre validar os dados.

Function Fu_Checa_Data(data As String) As Boolean

    Fu_Checa_Data = False

    If Not IsDate(data) Then

        Exit Function

    ElseIf Val(Mid(data, 4, 2)) > 12 Then

        Exit Function

    End If

    Fu_Checa_Data = True

End Function

Rotina que verifica se a data é válida. Retorna true/false.