Bonsoir,
Sub AfficherPrésident()
Dim n%, i%
With ActiveSheet
n = .Shapes(Application.Caller).TopLeftCell.Row
If n > 0 Then n = .Range("A" & n) Else Exit Sub
End With
For i = 2 To Worksheets.Count
Worksheets(i).Visible = xlSheetHidden
Next i
With Worksheets(CStr(n))
.Visible = xlSheetVisible
.Activate
End With
End Sub
Cette macro est affectée à ton image. Il conviendra, pour les images suivantes que tu vas mettre, que tu leur affectes la même macro.
La macro se base sur la position de l'image appelante (qu'elle identifie) pour prendre le nom de la feuille en colonne A de la ligne. Le reste suit...
Je ne sais quels essais tu as fait mais en donnant des noms numériques à tes feuilles, un nom de feuille n'en est pas moins une donnée String, il faut donc convertir en texte le numéro pour l'appeler.
NB- J'ai mis une macro de masquage, affectée au drapeau de ta première feuille. J'aurais pu le faire sur l'évènement Activation de la feuille, donc automatique... Tu verras ce que tu souhaites au fil de l'avancement pour modifier en conséquence.
Cordialement.