1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Dim annee As Integer, ladate As Date, rang As Integer, jour As Integer, lejour As Integer, i As Integer, lejn As Date, mess As String
annee = 2014 ' ici ton année
rang = 2 ' ici le rang d'occurence du jour dans le mois (forcément compris entre 1 et 5) ex ici : 2ème mardi
jour = 4 'ici le n° du jour considéré (ex 2 = mardi)
For i = 1 To 12
ladate = DateSerial(annee, i, 1)
lejour = DatePart("w", ladate)
lejn = ladate + IIf(lejour <= jour, jour + 1 - lejour, (jour + 8 - lejour) Mod 7) + (rang - 1) * 7
'et maintenant, on va éviter d'afficher si le mois en cause ne contient pas de jour avec ce rang, bien sûr
' cve qui, par exemple, pourrait arriver avec rang = 5 (un jour de la semaine pouvant apparaître 5 fois dans
'un mois, mais pas toujours...
If Month(lejn) = i Then
mess = mess & Format(lejn, "dddd dd mm yyyy")
End If
If i < 12 Then mess = mess & vbCrLf
Next
MsgBox mess |
Partager