VBA- Fonctions de Date
In this Article
- Fonction Date VBA
- Fonction Now en VBA
- Fonction Time en VBA
- Fonction VBA DateAdd
- Fonction VBA DateDiff
- Fonction DatePart VBA
- Fonction VBA DateSerial
- Fonction VBA DateValue
- Fonction VBA Day
- Fonction VBA Hour
- Fonction VBA Minute
- Fonction VBA Second
- Fonction VBA Month
- Fonction MonthName en VBA
- Fonction TimeSerial VBA
- Fonction VBA TimeValue
- Fonction VBA Weekday
- Fonction VBA WeekdayName
- Fonction VBA Year
- Comparaison de Dates en VBA
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.