Datum vergelijking

Status
Niet open voor verdere reacties.

plop86

Nieuwe gebruiker
Lid geworden
12 dec 2017
Berichten
3
Dag allen,

Ik heb een datumvergelijking gemaakt voor Excel.

Wil dat er alleen actie uitgevoerd wordt als de huidige datum zich bevindt tussen 28 oktober van het huidige jaar en 1 april van het eerstvolgende jaar.

De volgende code lijkt daarvoor bijna helemaal correct te werken.

Code:
   Dim CUR_Date, MIN_DATE, MAX_DATE As Date
    CUR_Date = Date
    MIN_DATE = "27-10-" & Year(Date)
    MAX_DATE = "31-3-" & Year(DateAdd("yyyy", 1, Date))
    
    If CUR_Date > MIN_DATE And CUR_Date < MAX_DATE Then
      MsgBox "Test gelukt!
    End If

    Stop

Als ik in de foutopsporing (n.a.v. de STOP) met de muis hover over de waardes van CUR_DATE en MAX_DATE, dan zie ik keurig de correcte datumwaardes ZONDER quotes er omheen.
De MIN_DATE value heeft echter quotes "27-10-2017" in de waarde die het laat zien, dus ik verwacht dat daar iets mis gaat.

Als ik het IF-statement aanpas en alleen vergelijk met MAX_DATE dan krijg ik ook een TRUE terug. Dus de vergelijking met MIN_DATE lijkt nog niet goed te werken. Iemand een idee wat ik hier kan doen om dit voor elkaar te krijgen?
 
En dit?
Code:
    MIN_DATE = DateSerial(Year(Date), 10, 27)
    MAX_DATE = DateSerial(Year(Date) + 1, 3, 31)
    If Date > MIN_DATE And CUR_Date < MAX_DATE Then
      MsgBox "Test gelukt!"
    End If
 
Mag je de vraag nog op <Opgelost zetten. Ik had iets te snel geplakt trouwens: de variabele Cur_Date heb je natuurlijk niet nodig, en die had ik in de IF dus voor de helft vervangen. Kan helemaal zo:
Code:
    If Date > MIN_DATE And Date < MAX_DATE Then
Of, nog korter, zo:
Code:
    If Date > DateSerial(Year(Date), 10, 27) And Date < DateSerial(Year(Date) + 1, 3, 31) Then
 
Mooie aanvulling!

De datum in een variabele specificeren is wel handig indien de datum in de toekomst aangepast moet worden.

Nogmaals dank!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan