Problemen met data vergelijken

Status
Niet open voor verdere reacties.

Plotinus

Gebruiker
Lid geworden
25 mrt 2007
Berichten
658
Via een Userform in Word laat ik middels een datumpicker een gebruiker een datum selecteren. Deze wordt vervolgens getoetst aan de datum dat de invoer plaatsvindt. Als de datum in de toekomst ligt, dan moet er een foutmelding volgen; ingevoerde datum wordt dus vergeleken met de dag dat het menu doorlopen wordt. Dat gaat vaak goed, maar soms ook niet. Als er bijvoorbeeld 17 februari wordt geselecteerd en dat wordt vergeleken met vandaag 2 maart dan wordt de foutboodschap geactiveerd, terwijl februari toch echt achter ons ligt en de melding niet zou moeten gebeuren.

Onderstaand de code:

Code:
Sub Datumevaluatie(Datum, soort, page)
    If Format(Datum, "dd mmmm yyyy") > Format(Date, "dd mmmm yyyy") Then
        Boodschap = MsgBox("De ingevoerde datum van " & soort & " is " & Format(Datum, "d mmmm yyyy") & ". Dat kan niet juist zijn. Selecteer een juiste datum.", 16, "Datuminvoer onjuist")
        Me.MultiPage1.Value = page
        Datum.SetFocus
    End If
End Sub

In het bovenstaande is 'Datum' de ingevoerde datum en 'Date' de systeemdatum.

Is het niet mogelijk om elke datum eerst naar een uniek getal te converteren en dan data met elkaar te vergelijke? Ik meen me te herinneren dat dit binnen Excel mogelijk is.
 
Ik weet niet welke uitvoer je datepicker heeft, maar uitsplitsen werkt zeker.
Code:
Sub Datumevaluatie(jaar, maand, dag, soort, page)
    If DateSerial(jaar, maand, dag) > Date Then
        Boodschap = MsgBox("De ingevoerde datum van " & soort & " is " & Format(Datum, "d mmmm yyyy") & ". Dat kan niet juist zijn. Selecteer een juiste datum.", 16, "Datuminvoer onjuist")
        Me.MultiPage1.Value = page
        Datum.SetFocus
    End If
End Sub
 
Een datum is in Excel een getal, dus converteren is overbodig
De invoer van een inputbox is altijd tekst; dus daar is conversie wel nodig.

Code:
Sub M_snb()
  Do
    c00= inputbox( "datum")
  loop until cdate(c00)<date
End Sub
 
Laatst bewerkt:
In plaats van uit te splitsen blijkt het heel eenvoudig te doen met 'cdate'.

Bedankt snb en alphamax.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan