Sub affiche()
'déclaration des variables
Dim i As Long, lig As Long, col As Integer, sh As Worksheet
'supprime l'affichage ecran (plus rapide)
Application.ScreenUpdating = False
Set sh = Sheets("Planning")'affectation de la feuille planning à la variable sh
'effacement des données de la feuille planning
sh.Range("C4:F34").ClearContents: sh.Range("I4:L34").ClearContents: sh.Range("O4:R34").ClearContents
sh.Range("U4:X34").ClearContents: sh.Range("AA4:AD34").ClearContents: sh.Range("AG4:AJ34").ClearContents
sh.Range("C38:F68").ClearContents: sh.Range("I38:L68").ClearContents: sh.Range("O38:R68").ClearContents
sh.Range("U38:X68").ClearContents: sh.Range("AA38:AD68").ClearContents: sh.Range("AG38:AJ68").ClearContents
With Sheets("Evenements") 'avec la feuille evenement (on met un point devant les range et les cells de cette feuille)
For i = 2 To .Range("A" & Rows.Count).End(xlUp).Row 'derniere ligne
Select Case Month(.Range("A" & i).Value) 'selection des mois des dates
Case Is = 9 'si mois=9 (septembre)
col = 3: lig = 3 + Day(.Range("A" & i).Value)
'la colonne est egale à 3 et la ligne=3+ le jour de la date
Case Is = 10
col = 9: lig = 3 + Day(.Range("A" & i).Value)
Case Is = 11
col = 15: lig = 3 + Day(.Range("A" & i).Value)
Case Is = 12
col = 21: lig = 3 + Day(.Range("A" & i).Value)
Case Is = 1
col = 27: lig = 3 + Day(.Range("A" & i).Value)
Case Is = 2
col = 33: lig = 3 + Day(.Range("A" & i).Value)
Case Is = 3
col = 3: lig = 37 + Day(.Range("A" & i).Value)
Case Is = 4
col = 9: lig = 37 + Day(.Range("A" & i).Value)
Case Is = 5
col = 15: lig = 37 + Day(.Range("A" & i).Value)
Case Is = 6
col = 21: lig = 37 + Day(.Range("A" & i).Value)
Case Is = 7
col = 27: lig = 37 + Day(.Range("A" & i).Value)
Case Is = 7
col = 33: lig = 37 + Day(.Range("A" & i).Value)
End Select
Select Case .Range("B" & i).Value 'en fonction de l'heure de debut
Case Is = "10:45"'la colonne est décalée
col = col + 1
Case Is = "13:30"
col = col + 2
Case Is = "15:15"
col = col + 3
End Select
'la classe correspondante est mise dans la cellule correspondant à la ligne et à la colonne
sh.Cells(lig, col).Value = .Range("D" & i).Value
Next 'suite de la boucle (for next)
End With 'fin de l'utilisation de la feuille evenement
Application.ScreenUpdating = True 'relance de l(affichage)
MsgBox ("Mise à jour effectuée")
sh.Select 'selection de la feuille planning
End Sub