Fonction VBA : DateAdd

La fonction VBA DateAdd ajoute l'intervalle de temps spécifié (en secondes, minutes, heures, jours, mois ou années) à une date.

Utilisation :

DateAdd(intervalle, nombre, date)


Exemple d'utilisation

Utilisation de la fonction DateAdd avec différents intervalles de temps :

Sub exemple()
    
    maDate = #10/30/2020 3:35:45 PM#
    
    ajout = 3
    
    'Ajout de 3 jours
    MsgBox DateAdd("d", ajout, maDate) 'Renvoie : 02.11.2020 15:35:45
    
    'Ajout de 3 heures
    MsgBox DateAdd("h", ajout, maDate) 'Renvoie : 30.10.2020 18:35:45
    
    'Ajout de 3 minutes
    MsgBox DateAdd("n", ajout, maDate) 'Renvoie : 30.10.2020 15:38:45
    
    'Ajout de 3 secondes
    MsgBox DateAdd("s", ajout, maDate) 'Renvoie : 30.10.2020 15:35:48
    
    'Ajout de 3 mois
    MsgBox DateAdd("m", ajout, maDate) 'Renvoie : 30.01.2021 15:35:45
    
    'Ajout de 3 années
    MsgBox DateAdd("yyyy", ajout, maDate) 'Renvoie : 30.10.2023 15:35:45

End Sub
Si vous entrez le nombre 3.9 au lieu de 3, vous obtiendrez le même résultat car la fonction DateAdd ne tient compte que de la partie entière du nombre.

Une alternative consiste à additionner directement le nombre à la date (cette solution permet de tenir compte des nombres à virgule) :

Sub exemple()
    
    maDate = #10/30/2020 3:00:00 PM#
    
    ajout = 3.5
    
    'Ajout de 3.5 jours
    MsgBox maDate + ajout  'Renvoie : 03.11.2020 03:00:00
    
    'Ajout de 3.5 heures
    MsgBox maDate + ajout / 24  'Renvoie : 30.10.2020 18:30:00
    
    'Ajout de 3.5 minutes
    MsgBox maDate + ajout / (24 * 60)  'Renvoie : 30.10.2020 15:03:30

End Sub