1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Sub test()
create_calendrier 2017, 12 'année puis mois
End Sub
Function create_calendrier(année, mois)
Dim i As Long, col As Long, lig As Long, nbjour As Long, difeuro As Long
nbjour = Day(DateSerial(année, mois + 1, 0)) ' te donne le nombre de jour dans le mois en parametre
col = Weekday(DateSerial(année, mois, 1)) ' te donne la colonne(l'index du jour de la semaine ), ajouter la différence si le calendrier ne commence pas en colonne "A"
If Weekday(DateSerial(année, 1, 1), vbMonday) > 4 Then difeuro = 1 ' 1 si semaine commence apres jeudi
If col = 1 Then col = 8
lig = 3
With Sheets(1)
.Range(.Cells(1, 1), .Cells(14, 8)).ClearContents
For i = 1 To nbjour
If col = 9 Then lig = lig + 2: col = 2
.Cells(lig, col) = i
.Cells(lig, 1) = Val(Format(DateSerial(année, mois, i), "WW", vbMonday)) - difeuro
col = col + 1
Next
.Cells(1, 2) = UCase(Format(DateSerial(année, mois, 1), "mmmm yyyy "))
.Cells(2, 1).Resize(1, 8) = Array("semaine", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche")
End With
End Function |
Partager