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

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