Vous avez apprécié ?
Partagez ;-)

Astuce VBA : calculer le nombre de jours dans un mois

Pour calculer le nombre de jours dans un mois ou définir le dernier jour du mois, vous pouvez utiliser la formule suivante :

Sub nb_jours_mois()
   
    date_test = CDate("6/2/2012") 'Une date quelconque pour cet exemple

    nb_jours = Day(DateSerial(Year(date_test), Month(date_test) + 1, 1) - 1)
   
End Sub

Pour mieux comprendre cette formule, la voici dans une version décortiquée et commentée :

Sub nb_jours_mois()
   
    'Une date quelconque pour cet exemple
    date_test = CDate("6/2/2012")
   
    'Mois / année de la date
    mois = Month(date_test)
    annee = Year(date_test)
   
    'Calcul du premier jour du mois suivant
    date_mois_suivant = DateSerial(annee, mois + 1, 1)
   
    'Date du dernier jour
    dernier_jour_mois = date_mois_suivant - 1
   
    'Nombre de jour dans le mois (= dernier jour)
    nb_jours = Day(dernier_jour_mois)
   
End Sub

Fonction

Vous pouvez également l'utiliser en tant que fonction en ajoutant le code suivant dans un module :

Function NB_JOURS(date_test As Date)
    NB_JOURS = Day(DateSerial(Year(date_test), Month(date_test) + 1, 1) - 1)
End Function

Exemple d'utilisation de la fonction en VBA :

Sub exemple()
    test = NB_JOURS(Range("A1"))
    MsgBox test
End Sub
fonction - nb jours dans mois

Exemple d'utilisation de cette même fonction sur une feuille de calcul :

fonction2 - nb jours dans mois