Private Sub Workbook_Open()
Dim TM As Variant 'déclare la variable TM (Tableau ds Mois)
Dim D As Date 'déclare la variable D (Date)
Dim I As Byte 'déclare la variable I (Incrément)
Dim M As Byte 'déclare la variable M (Mois)
Dim J As Byte 'déclare la variable J (incrément)
'définit le tableau des mois TM (c'eut été plus malin d'utiliser le même format pour tous, 4 premières lettres
'ou mois entier, ou numero !...)
TM = Array("SEPT", "OCT", "NOV", "DEC", "JAN", "FEV", "MAR", "AVRIL", "MAI", "JUIN", "JUIL", "AOÛT")
For I = 1 To Sheets.Count 'boucle 1 : sur tous les onglet du classeur
For J = 0 To UBound(TM) 'boucle 2 : sur tous les mois du tableau TM
M = I + 8 'définit le mois M (vu que l'on ne commence pas en janvier)
D = DateSerial(2018, M + 1, 0) 'définit la date D (dernier jour du mois de l'onglet)
If Date > D Then 'condition : Si la date du jour est supérieure à D
Sheets(I).Cells.Locked = True 'protège toutes les cellules de l'onglet de la boucle 1
O.Protect "Toto" 'protège l'onglet avec le mot de passe "Toto" (à adapter)
Exit For 'sort de la boucle 2
End If 'fin de la condition
Next J 'prochain mois de la boucle 2
Next I 'prochain onglet de la boucle 1
End Sub