Como validar fecha en un formulario

Tengo un problema estoy usando un formulario con el cual pretendo ingresar información de una factura en una tabla en una hoja de excel, el formulario tiene 2 campos un dice mes de trabajo y en este se ingresa el mes con el cual se esta trabajado (enero, febrero, marzo... Diciembre) y el siguiente campo pide una fecha especifica (22/01/2016, 15/03/2016, etc) ya que estos campos son necesarios he tratado de validar que cuando por error se ingrese un mes diferente a la fecha especifica me salte una alerta que me diga que estos dos datos no coinciden es decir si en el mes de trabajo ingreso "enero" y en la fecha ingreso "22/02/2016" me muestre un mensaje de error diciéndome que estos datos no coinciden

Como dije anteriormente he tratado de hacerlo sin embargo aunque el mes y las fechas estén correctas siempre me aparece el error a continuación dejo el código que utilice para esta instrucción espero me puedan explicar cual es el error que estoy cometiendo.

'Determinación de mes de trabajo
If Me.Mes_Trabajo = "" Then
MsgBox ("ERROR !!!, Este campo no puede quedar en blanco"), vbCritical + vbOKOnly, ["Registro de Retenciones, Mensaje de Error"]
Me.Mes_Trabajo = Empty
Me.Mes_Trabajo.SetFocus
Else

'Valida si el mes de trabajo y la fecha coinciden
Meses = Array("", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre")
For m = LBound(meses) To UBound(meses)
If UCase(Me.Mes_Trabajo) = meses(m) Then
Num_Mes = m
End If
Next
Mes_Trabajo = Month(CDate(fecha))
If Me.Mes_Trabajo <> Num_Mes Then
MsgBox ("ERROR !!!, Fecha de emision de factura no coincide con mes de trabajo"), vbCritical + vbOKOnly, ["Registro de Retenciones, Mensaje de Error"]
Me.Mes_Trabajo = Empty
Me.Fecha_Emision = Empty
Me.Mes_Trabajo.SetFocus
Exit Sub
End If

1 Respuesta

Respuesta
2

H o l a:

Se tienen que realizar todas estas validaciones:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    'Determinación de mes de trabajo
    If Mes_Trabajo = "" Then
        MsgBox "ERROR !!!, El campo Mes Trabajo no puede quedar en blanco", vbCritical, "Registro de Retenciones, Mensaje de Error"
        Mes_Trabajo.SetFocus
        Exit Sub
    End If
    '
    'Valida si el mes de trabajo y la fecha coinciden
    meses = Array("", "enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", _
                  "septiembre", "octubre", "noviembre", "diciembre")
    existe = False
    For m = LBound(meses) To UBound(meses)
        If UCase(Mes_Trabajo) = UCase(meses(m)) Then
            mestrabajo = m
            existe = True
            Exit For
        End If
    Next
    '
    If existe = False Then
        MsgBox "ERROR !!!, Captura un mes válido", vbCritical, "Registro de Retenciones, Mensaje de Error"
        Mes_Trabajo.SetFocus
        Exit Sub
    End If
    '
    'Valida fecha
    If Fecha_Emision = "" Then
        MsgBox "ERROR !!!, El campo fecha emisión no puede quedar en blanco", vbCritical, "Registro de Retenciones, Mensaje de Error"
        Fecha_Emision.SetFocus
        Exit Sub
    End If
    If Not IsDate(Fecha_Emision) Then
        MsgBox "ERROR !!!, Captura un fecha válida", vbCritical, "Registro de Retenciones, Mensaje de Error"
        Fecha_Emision.SetFocus
        Exit Sub
    End If
    '
    mesfecha = Month(Fecha_Emision)
    If mestrabajo <> mesfecha Then
        MsgBox "ERROR !!!, Fecha de emision de factura no coincide con mes de trabajo", vbCritical, "Registro de Retenciones, Mensaje de Error"
        'Mes_Trabajo = Empty
        'Fecha_Emision = Empty
        Mes_Trabajo.SetFocus
    End If
    '
    MsgBox "Validaciones correctas", vbInformation, "VALIDAR FECHA"
End Sub


':)
':)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas