Function moisSuivantMmJS(dat As Date, Optional nbMois As Long = 1) As Variant
' à partir d'une date,
' fournit le même xième 'jour de la semaine' du mois suivant
' ex : moisSuivant("10/03/15") ==> 14/04/2015 (2e mardi du mois suivant)
' ex : moisSuivant("10/03/15",3) ==> 09/06/2015 (2e mardi 3 mois plus tard)
' *** limité au 4ème jour/sem du mois ***
' eriiic
Dim numJo As Long, d1 As Date
numJo = Day(dat) \ 7
If numJo > 3 Then
'limitation au 4ème dans le mois
moisSuivantMmJS = CVErr(xlErrNum) ' #NOMBRE!, hors domaine
Exit Function
End If
d1 = CDate("1/" & Format(DateAdd("m", nbMois, dat), "mm/yyyy")) ' 1er du mois
moisSuivantMmJS = d1 + (Weekday(dat, 2) - Weekday(d1, 2) + 7) Mod 7 + numJo * 7
End Function