VBA- Fonctions de Date

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on janvier 12, 2022

Ce tutoriel couvre les différentes fonctions de date intégrées de VBA.

Fonction Date VBA

Vous pouvez utiliser la fonction date pour retourner la date actuelle.

La syntaxe de la fonction Date est Date(). Elle n’a pas d’arguments.

Le code suivant vous montre comment utiliser la fonction Date :

Sub UtilisationDeLaFonctionDate()

Dim laDate As Date
laDate = Date

Debug.Print laDate

End Sub

Le résultat affiché dans la fenêtre d’exécution est le suivant :

Fonction Now en VBA

Vous pouvez utiliser la fonction Now pour afficher la date et l’heure actuelle.

La syntaxe de la fonction Now est Now(). Elle n’a pas d’arguments.

Le code suivant vous montre comment utiliser la fonction Now :

Sub UtilisationDeLaFonctionNow()

Dim laDate As Date
laDate = Now()

Debug.Print laDate

End Sub

Le résultat est le suivant :

Fonction Time en VBA

Vous pouvez utiliser la fonction Time pour obtenir l’heure actuelle.

La syntaxe de la fonction Time est Time(). Elle n’a pas d’arguments.

Le code suivant vous montre comment utiliser la fonction Time :

Sub UtilisationDeLaFonctionTime()

Dim heure As Date
heure = Time()

Debug.Print heure

End Sub

Le résultat est le suivant :

Fonction VBA DateAdd

Vous pouvez utiliser la fonction DateAdd pour ajouter un intervalle de date/heure à une date ou une heure, et la fonction renverra la date/heure résultante.

La syntaxe de la fonction DateAdd est la suivante :

DateAdd(Intervalle, Nombre, Date) où :

  • Intervalle – Une chaîne qui spécifie le type d’intervalle à utiliser. L’intervalle peut être l’une des valeurs suivantes :

« d » – jour (day)
« ww » – semaine (week)
« w » – jour de la semaine (weekday)
« m » – mois
« q » – trimestre (quarter)
« yyyy » – année (year)
« y » – jour de l’année
« h » – heure
« n » – minute
« s » – seconde

  • Nombre – Le nombre d’intervalles que vous souhaitez ajouter à la date/heure d’origine.
  • Date – La date/heure d’origine.

Remarque : lorsque vous utilisez des dates dans votre code, vous devez les entourer de # ou de guillemets.

Le code suivant montre comment utiliser la fonction DateAdd :

Sub UtilisationDeLaFonctionDateAdd()

Dim dateFuture As Date

dateFuture = DateAdd("m", 10, "2021-12-24")

Debug.Print dateFuture

End Sub

Le résultat est le suivant :

Fonction VBA DateDiff

Vous pouvez utiliser la fonction DateDiff afin d’obtenir la différence entre deux dates, sur la base d’un intervalle de temps spécifié.

La syntaxe de la fonction DateDiff est la suivante :

DateDiff(Intervalle, Date1, Date2, [Firstdayofweek], [Firstweekofyear]) où :

  • Intervalle – Une chaîne qui spécifie le type d’intervalle à utiliser. L’intervalle peut être l’une des valeurs suivantes :

« d » – jour
« ww » – semaine
« w » – jour de la semaine
« m » – mois
« q » – trimestre
« yyyy » – année
« y » – jour de l’année
« h » – heure
« n » – minute
« s » – seconde

  • Date1 – Une valeur de date représentant la date antérieure.
  • Date2 – Une valeur de date représentant la date ultérieure.
  • Firstdayofweek(Facultatif) – Une constante qui spécifie le jour de la semaine que la fonction doit utiliser comme premier jour de la semaine. Si elle est vide, le dimanche est utilisé comme premier jour de la semaine. Firstdayofweek peut prendre l’une des valeurs suivantes :

-vbSunday – utilise le dimanche comme premier jour de la semaine.
-vbMonday – utilise le lundi comme premier jour de la semaine.
-vbTuesday – utilise le mardi comme premier jour de la semaine.
-vbWednesday – utilise le mercredi comme premier jour de la semaine.
-vbThursday – utilise le jeudi comme premier jour de la semaine.
-vbFriday – utilise le vendredi comme premier jour de la semaine.
-vbSaturday – utilise le samedi comme premier jour de la semaine.
-vbUseSystemDayOfTheWeek – utilise le premier jour de la semaine spécifié par les paramètres de votre système.

  • Firstweekofyear(Facultatif) – Une constante qui spécifie la première semaine de l’année. Si elle est vide, la semaine du 1er janvier est utilisée comme première semaine de l’année. Firstweekofyear peut prendre l’une des valeurs suivantes :

-vbFirstJan1 – utilise la semaine contenant le 1er janvier.
-vbFirstFourDays – utilise la première semaine qui contient au moins quatre jours dans la nouvelle année.
-vbFirstFullWeek – utilise la première semaine complète de l’année.
-vbSystem – utilise la première semaine de l’année telle que spécifiée par vos paramètres système.

Le code suivant vous montre comment utiliser la fonction DateDiff :

Sub UtilisationDeLaFonctionDateDiff()
 
Dim différenceEntreLesDates As Long
 
différenceEntreLesDates = DateDiff("q", "11/11/2010", "10/12/2012")
 
Debug.Print différenceEntreLesDates
 
End Sub

Le résultat est le suivant :

Fonction DatePart VBA

Vous pouvez utiliser la fonction DatePart pour renvoyer une partie (jour, semaine, trimestre, mois, etc.) d’une date donnée.

La syntaxe de la fonction DatePart est la suivante :

DatePart(Intervalle, Date, [Firstdayofweek], [Firstweekofyear]) où :

  • Intervalle – Une chaîne qui spécifie la partie de la date à retourner. L’intervalle peut être l’une des valeurs suivantes :

« d » – jour
« ww » – semaine
« w » – jour de la semaine
« m » – mois
« q » – trimestre
« yyyy » – année
« y » – jour de l’année
« h » – heure
« n » – minute
« s » – seconde

  • Date – La date dont vous souhaitez que la fonction renvoie une partie.
  • Firstdayofweek(facultatif) – Une constante qui spécifie le jour de la semaine que la fonction doit utiliser comme premier jour de la semaine. Si elle est vide, le dimanche est utilisé comme premier jour de la semaine. Firstdayofweek peut prendre l’une des valeurs suivantes :

-vbSunday – utilise le dimanche comme premier jour de la semaine.
-vbMonday – utilise le lundi comme premier jour de la semaine.
-vbTuesday – utilise le mardi comme premier jour de la semaine.
-vbWed Wednesday – utilise le mercredi comme premier jour de la semaine.
-vbThursday – utilise le jeudi comme premier jour de la semaine.
-vbFriday – utilise le vendredi comme premier jour de la semaine.
-vbSaturday – utilise le samedi comme premier jour de la semaine.
-vbUseSystemDayOfTheWeek – utilise le premier jour de la semaine spécifié par les paramètres de votre système.

  • Firstweekofyear(Facultatif) – Une constante qui spécifie la première semaine de l’année. Si elle est vide, la semaine du 1er janvier est utilisée comme première semaine de l’année. Firstweekofyear peut prendre l’une des valeurs suivantes :

-vbFirstJan1 – utilise la semaine contenant le 1er janvier.
-vbFirstFourDays – utilise la première semaine qui contient au moins quatre jours dans la nouvelle année.
-vbFirstFullWeek – utilise la première semaine complète de l’année.
-vbSystem – utilise la première semaine de l’année telle que spécifiée par vos paramètres système.

Le code suivant vous montre comment utiliser la fonction DatePart :

Sub UtilisationDeLaFonctionDatePart()

Dim partieDeLaDate As Integer

partieDeLaDate = DatePart("yyyy", "12/12/2009")

Debug.Print partieDeLaDate

End Sub

Le résultat est le suivant :

Fonction VBA DateSerial

La fonction VBA DateSerial prend en entrée l’année, le mois et le jour et renvoie une date.

La syntaxe de la fonction DateSerial est la suivante :

DateSerial(Année, Mois, Jour) où :

  • Année – Une valeur entière entre 100 et 9999 qui représente l’année.
  • Mois – Une valeur entière qui représente le mois.
  • Jour – Une valeur entière qui représente le jour.

Le code suivant vous montre comment utiliser la fonction DateSerial :

Sub UtilisationDeLaFonctionDateSerial()

Dim laDate As Date

laDate = DateSerial(2010, 11, 10)

Debug.Print laDate

End Sub

Le résultat est le suivant :

Fonction VBA DateValue

La fonction DateValue renvoie une date lorsqu’on lui donne une représentation en chaîne d’une date.

La syntaxe de la fonction DateValue est la suivante :

DateValue(Date) où :

  • Date – Une chaîne de caractères représentant la date.

Le code suivant vous montre comment utiliser la fonction DateValue :

Sub UtilisationDeLaFonctionDateValue()

Dim laDate As Date

laDate = DateValue("29 octobre 2010")

Debug.Print laDate

End Sub

Le résultat est le suivant :

Fonction VBA Day

Vous pouvez utiliser la fonction Day pour renvoyer le jour d’une date saisie.

La syntaxe de la fonction Day est la suivante :

Day(Date_value) où :

  • Date_value – La date dont vous voulez extraire le jour.

Le code suivant vous montre comment utiliser la fonction Day :

Sub UtilisationDeLaFonctionDay()

Dim jour As Integer

jour = Day("10/12/2010")

Debug.Print jour

End Sub

Le résultat est le suivant :

Fonction VBA Hour

Vous pouvez utiliser la fonction Hour pour renvoyer l’heure d’un temps d’entrée.

La syntaxe de la fonction Hour est la suivante :

Hour(Time) où :

  • Time – Le temps dont vous voulez extraire la valeur des heures.

Le code suivant vous montre comment utiliser la fonction Hour :

Sub UtilisationDeLaFonctionHour()
 
Dim heure As Integer

heure = Hour("2:14:17 AM")

Debug.Print heure

End Sub

Le résultat est le suivant :

Fonction VBA Minute

Vous pouvez utiliser la fonction Minute pour renvoyer la valeur en minutes d’une heure d’entrée.

La syntaxe de la fonction Minute est la suivante :

Minute(Time) où :

  • Time – L’heure dont vous voulez extraire la valeur des minutes.

Le code suivant vous montre comment utiliser la fonction Minute :

Sub UtilisationDeLaFonctionMinute()
 
Dim lesMinutes As Integer

lesMinutes = Minute("2:14:17 AM")

Debug.Print lesMinutes

End Sub

Le résultat est le suivant :

Fonction VBA Second

Vous pouvez utiliser la fonction Second (secondes) pour renvoyer la valeur des secondes d’un temps d’entrée.

La syntaxe de la fonction Second est la suivante :

Second(Time) où :

  • Time – L’heure dont vous voulez extraire la valeur des secondes.

Le code suivant vous montre comment utiliser la fonction second:

Sub UtilisationDeLaFonctionSecond()
 
Dim secondes As Integer

secondes = Second("2:14:17 AM")

Debug.Print secondes

End Sub

Le résultat est le suivant :

Fonction VBA Month

Vous pouvez utiliser la fonction Month pour renvoyer le mois d’une date saisie.

La syntaxe de la fonction Month est la suivante :

Month(Date_value) où :

  • Date_value – La date dont vous voulez extraire le mois.

Le code suivant vous montre comment utiliser la fonction Month:

Sub UtilisationDeLaFonctionMonth()

Dim mois As Integer

mois = Month("2010-11-18")

Debug.Print mois

End Sub

Le résultat est le suivant :

Fonction MonthName en VBA

Vous pouvez utiliser la fonction MonthName pour renvoyer le nom d’un mois à partir d’un numéro de mois fourni en entrée.

La syntaxe de la fonction MonthName est la suivante :

MonthName(Number_of_month, [Abbreviate]) où :

  • Number_of_month – Une valeur entière entre 1 et 12 correspond au numéro du mois.
  • Abréger(facultatif) – Spécifie si le nom du mois doit être abrégé. S’il est vide, la valeur par défaut est False.
Sub UtilisationDeLaFonctionMonthName()

Dim nomMois As String

nomMois = MonthName(12, True)

Debug.Print nomMois

End Sub

Le résultat est le suivant :

Fonction TimeSerial VBA

La fonction TimeSerial prend en entrée l’heure, les minutes et les secondes et renvoie l’heure correspondante.

La syntaxe de la fonction TimeSerial est la suivante :

TimeSerial(Heures, Minutes, Secondes) où :

  • Heures – Une valeur entière entre 0 et 23 qui représente la valeur de l’heure.
  • Minutes – Une valeur entière entre 0 et 59 qui représente la valeur de la minute.
  • Secondes – Une valeur entière entre 0 et 59 qui représente la valeur des secondes.

Le code suivant vous montre comment utiliser la fonction TimeSerial :

Sub UtilisationDeLaFonctionTimeSerial()

Dim heure As Date
heure = TimeSerial(1, 10, 15)

Debug.Print heure

End Sub

Le résultat est le suivant :

Fonction VBA TimeValue

La fonction TimeValue renvoie un temps à partir d’une représentation en chaîne d’une date ou d’une heure.

La syntaxe de la fonction TimeValue est la suivante :

TimeValue(Time) où :

  • Time – Une chaîne représentant l’heure.

Le code suivant vous montre comment utiliser la fonction TimeValue :

Sub UtilisationDeLaFonctionTimeValue()

Dim heure As Date

heure = TimeValue("22:10:17")

Debug.Print heure

End Sub

Le résultat est le suivant :

Fonction VBA Weekday

Vous pouvez utiliser la fonction Weekday pour renvoyer un nombre entier de 1 à 7 représentant un jour de la semaine à partir d’une date d’entrée.

La syntaxe de la fonction Jour de la semaine est la suivante :

Weekday(Date, [Firstdayofweek]) où :

  • Date – La date dont vous voulez extraire la valeur du jour de la semaine.
  • Firstdayofweek(facultatif) – Une constante qui spécifie le jour de la semaine que la fonction doit utiliser comme premier jour de la semaine. Si elle est vide, le dimanche est utilisé comme premier jour de la semaine. Firstdayofweek peut prendre l’une des valeurs suivantes :

-vbSunday – utilise le dimanche comme premier jour de la semaine.
-vbMonday – utilise le lundi comme premier jour de la semaine.
-vbTuesday – utilise le mardi comme premier jour de la semaine.
-vbWednesday – utilise le mercredi comme premier jour de la semaine. -vbThursday – utilise le jeudi comme premier jour de la semaine.
vbFriday – utilise le vendredi comme premier jour de la semaine.
-vbSaturday – utilise le samedi comme premier jour de la semaine.
-vbUseSystemDayOfTheWeek – utilise le premier jour de la semaine spécifié par les paramètres de votre système. Le code suivant vous montre comment utiliser la fonction Jour de la semaine :

Sub UtilisationDeLaFonctionWeekday()

Dim jourSemaine As Integer

jourSemaine = Weekday("2019-11-20")

Debug.Print jourSemaine

End Sub

Le résultat est le suivant :

Fonction VBA WeekdayName

Vous pouvez utiliser la fonction WeekdayName pour renvoyer le nom d’un jour de la semaine à partir d’un numéro de jour de la semaine fourni en entrée.

La syntaxe de la fonction WeekdayName est la suivante :

WeekdayName(Weekday, [Abréger], [Firstdayofweek]) où :

  • Weekday – Une valeur entière comprise entre 1 et 7.
  • Abréger(facultatif) – Indique si le nom du jour de la semaine doit être abrégé. S’il est vide, la valeur par défaut est False.
  • Firstdayofweek(Facultatif) – Une constante qui spécifie le jour de la semaine que la fonction doit utiliser comme premier jour de la semaine. Si elle est vide, c’est le dimanche qui est utilisé comme premier jour de la semaine. Firstdayofweek peut prendre l’une des valeurs suivantes :

-vbSunday – utilise le dimanche comme premier jour de la semaine.
-vbMonday – utilise le lundi comme premier jour de la semaine.
-vbTuesday – utilise le mardi comme premier jour de la semaine.
-vbWed Wednesday – utilise le mercredi comme premier jour de la semaine.
-vbThursday – utilise le jeudi comme premier jour de la semaine.
-vbFriday – utilise le vendredi comme premier jour de la semaine.
-vbSaturday – utilise le samedi comme premier jour de la semaine.
-vbUseSystemDayOfTheWeek – utilise le premier jour de la semaine spécifié par les paramètres de votre système.

Sub UtilisationDeLaFonctionWeekdayName()
 
Dim nomJourSemaine As String

nomJourSemaine = WeekdayName(4)

Debug.Print nomJourSemaine

End Sub

Le résultat est le suivant :

Fonction VBA Year

Vous pouvez utiliser la fonction Year pour retourner l’année d’une date saisie.

La syntaxe de la fonction Year est la suivante :

Year(Date_value) où :

  • Date_value – La date dont vous voulez extraire l’année.

Le code suivant vous montre comment utiliser la fonction Year :

Sub UtilisationDeLaFonctionYear()

Dim année As Integer

année = Year("2010-12-10")

Debug.Print année

End Sub

Le résultat est le suivant :

Comparaison de Dates en VBA

Vous pouvez comparer des dates à l’aide des opérateurs >, < et = en VBA.

Le code suivant vous montre comment comparer deux dates en VBA.

Sub ComparaisonDates()

Dim dateUn As Date
Dim dateDeux As Date

dateUn = "10/10/2010"
dateDeux = "11/11/2010"

If dateUn > dateDeux Then
    Debug.Print "dateUn est la date la plus récente"

ElseIf dateUn = dateDeux Then
    Debug.Print "Les deux dates sont égales"

Else
    Debug.Print "dateDeux est la date la plus récente"

End If
End Sub

Pour en savoir plus sur le formatage des dates sous forme de chaînes, consultez ce tutoriel.

vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA