Bonjour,
Pas très économique ton codage !!
Les noms des cases d'option ne permettent pas de les défiler en boucle... Pas grave en fait, car il suffirait qu'au clic chaque OptionButton lance une procédure en lui passant le numéro de mois. Une seule procédure suffirait à afficher la feuille du mois :
Sub AfficherMois(m As Integer)
With Worksheets(m + 1)
.Visible = True
.Activate
End With
Unload.Me
End Sub
De même, plutôt qu'une procédure Deactivate par feuille Mois, une seule dans ThisWorkbook suffirait !
On divise ainsi déjà le volume de code par 12.
Pour l'utilisation contrôlée avec protection des feuilles, et report de données sur la feuille 1, c'est un peu nébuleux. Mais concernant toutes les feuilles, au niveau évènements déclencheurs cela se programme à partir du module classeur.
Cordialement.