VBA – Obtenir la Date d’Aujourd’hui (date actuelle)
Ce tutoriel montre comment obtenir la date du jour en VBA.
Il existe plusieurs façons d’obtenir la date du jour dans un code VBA, notamment en utilisant la fonction VBA Date() ou la fonction VBA Now().
Fonction Date()
La fonction Date( ) renvoie la date du jour. Dans l’exemple ci-dessous, nous assignons la date du jour à une variable et affichons ensuite la date dans la fenêtre immédiate de l’éditeur VBE.
Dim dtAujourdhui as Date
dtAujourdhui = Date()
Debug.Print dtAujourdhui
Nous pouvons également afficher la date dans une boîte de message.
Sub TestDate
Dim dtAujourdhui as Date
dtAujourdhui = Date()
Msgbox "La date d'aujourd'hui est " & dtAujourdhui
End Sub
Fonction Now()
La fonction Now() fonctionne de la même manière que la fonction date, mais elle inclut l’heure.
Sub TestDate()
Dim dtAujourdhui As Date
dtAujourdhui = Now()
MsgBox "La date d'aujourd'hui est " & dtAujourdhui
End Sub
Formatage des Dates avec VBA
Dans les fonctions Date() et Now(), la date est formatée dans un style par défaut déterminé par les paramètres de notre PC. Nous pouvons personnaliser ce formatage à l’aide de la fonction VBA Format pour personnaliser l’affichage. Comme la fonction Format renvoie une chaîne de caractères, nous devons déclarer une variable STRING plutôt qu’une variable DATE.
Sub TestDate()
Dim dtAujourdhui As String
dtAujourdhui = Format (Date, "dd mmmm yyyy")
MsgBox "La date d'aujourd'hui est " & dtAujourdhui
End Sub
Nous pouvons également formater la fonction Now() pour inclure la partie temporelle dans un format personnalisé.
Sub FormatNow()
Dim dtAujourdhui As String
dtAujourdhui = Format(Now(), "dd mmmm yy hh:mm:ss am/pm")
MsgBox dtAujourdhui
End Sub
Comparaison de Deux Dates avec VBA
Nous pouvons également utiliser la fonction Date pour comparer la date d’aujourd’hui à une autre date – par exemple, pour calculer le nombre de jours qui nous séparent d’un événement! Nous pouvons le faire en utilisant la fonction VBA DateDiff() qui renvoie un nombre. Nous pouvons donc déclarer une variable INTEGER pour y stocker la valeur retournée.
Sub TestDateDiff()
Dim dtAujourdhui As Date
Dim dtAutreDate As Date
Dim iJours As Integer
dtAujourdhui = Date
dtAutreDate = "08/08/2023"
iJours = DateDiff("d", dtAujourdhui, dtAutreDate)
MsgBox "Il y a " & iJours & " jours entre les deux dates"
End Sub
Les dates étant stockées sous forme de nombres, nous pourrions également soustraire la deuxième date de la première pour obtenir la même réponse.
iJours = dtAujourdhui - dtAutreDate