Astuce VBA : 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 nbJoursMois()
dateTest = CDate("6/2/2024") 'Une date quelconque pour cet exemple
nbJours = Day(DateSerial(Year(dateTest), Month(dateTest) + 1, 1) - 1)
End Sub
Pour mieux comprendre cette formule, la voici dans une version décortiquée et commentée :
Sub nbJoursMois()
'Une date quelconque pour cet exemple
dateTest = CDate("6/2/2024")
'Mois / année de la date
mois = Month(dateTest)
annee = Year(dateTest)
'Calcul du premier jour du mois suivant
dateMoisSuivant = DateSerial(annee, mois + 1, 1)
'Date du dernier jour
dernierJourMois = dateMoisSuivant - 1
'Nombre de jour dans le mois (= dernier jour)
nbJours = Day(dernierJourMois)
End Sub
Fonction
Vous pouvez également l'utiliser en tant que fonction en ajoutant le code suivant dans un module :
Function nbJours(dateTest As Date)
nbJours = Day(DateSerial(Year(dateTest), Month(dateTest) + 1, 1) - 1)
End Function
Exemple d'utilisation de la fonction en VBA :
Sub exemple()
test = nbJours(Range("A1"))
MsgBox test
End Sub

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