• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

VBA en datum

Status
Niet open voor verdere reacties.

HierEnNu

Gebruiker
Lid geworden
16 nov 2006
Berichten
497
Heren,

Ik heb een formulier gemaakt waarop je o.a. enige data moet invullen.
Zo heb ik o.a. de textbox " Besluit", waarin de datum van een besluit geplaatst moet worden. Alvorens de gegevens worden weggeschreven naar een tabblad wil ik eerst controleren of de ingevulde data aan bepaalde voorwaarden voldoen.
Hiervoor gebruik ik onderstaande code:
Code:
If Registratienummer = "" Or Bezwaarmaker = "" Then
    MsgBox "Niet alle verplichte velden zijn ingevuld!", vbCritical
    Cancel = True
ElseIf Application.WorksheetFunction.CountIf(Worksheets("Data").Range("Registratienummers"), Registratienummer.Value) = 1 Then
    MsgBox ("Dit registratienummer bestaat al!")
    Cancel = True
ElseIf Besluit = "" And Ontvangst_bezwaarschrift <> "" Then
    MsgBox "Er kan geen bezwaarschrift binnen komen op een besluit dat nog niet genomen is!", vbCritical
    Cancel = True
ElseIf Format(Besluit, "dd-mm-yyyy") > Format(Date, "dd-mm-yyyy") Then
    MsgBox "Dit besluit ligt in de toekomst!", vbCritical
    Cancel = True
ElseIf Format(Ontvangst_bezwaarschrift, "dd-mm-yyyy") > Format(Date, "dd-mm-yyyy") Then
    MsgBox "De ingevoerde ontvangstdatum van het bezwaarschrift ligt in de toekomst!.", vbCritical
    Cancel = True
ElseIf Format(Ontvangst_bezwaarschrift, "dd-mm-yyyy") <> "" And Format(Besluit, "dd-mm-yyyy") > Format(Ontvangst_bezwaarschrift, "dd-mm-yyyy") Then
    MsgBox "De ingevoerde ontvangstdatum van het bezwaarschrift ligt voor de besluitdatum!", vbCritical
    Cancel = True
ElseIf Ontvangst_bezwaarschrift = "" And Aanvulling <> "" Then
    MsgBox "Er is nog geen bezwaarschrift ontvangen!", vbCritical
    Cancel = True
Else

Als ik in de textbox "Besluit" nu b.v. de datum 20-10-10 invoer, dan krijg ik een melding conform bovenstaande code: "Dit besluit ligt in de toekomst!". Deze datum ligt echter niet in de toekomst.
Vul ik 15-10-10 in dan krijg ik geen melding (is dus goed). Hetzelfde gebeurt in de textbox "Ontvangst_bezwaarschrift".
Nu heb ik al het een en ander uitgeprobeerd met Format en Datevalue, maar het lukt me niet om het op te lossen.
Heeft dit te maken met Amerikaanse/Europese datumaanduiding misschien?
Wie weet raad?
 
Voor mij werkt hij zo
Code:
If DateValue(Besluit) > DateValue(Date) Then
    MsgBox "Dit besluit ligt in de toekomst!", vbCritical
End If
 
Rudi,

Bedankt voor je reactie. Dit werkt (had ik al geprobeerd) als er een datum is ingevoerd.
Stel nu ik heb nog geen besluitdatum, maar wel een bezwaarschrift. Bij besluit wordt niets ingevuld wat met datevalue leidt tot de melding "Dit besluit ligt in de toekomst!".
De evaluatie

Code:
DateValue(Besluit.Value) > DateValue(Date)

vindt plaatst, waarbij de nullstring in de textbox Besluit dus schijnbaar toch een waarde oplevert die groter is dan de datumwaarde van vandaag.

Wat is daaraan te doen?
 
Kan je het bestand met de userform niet posten, want ik kan het niet reconstrueren.
 
Je kunt het bestand van mijn site plukken. Staat onder Excel>Overheid en de naam is Bezwaarschriften.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan