Sub AfficheMasque()
Dim der As String, test As Boolean, s As Object
With ActiveSheet.DrawingObjects(Application.Caller)
der = Right(Trim(.Text), 1)
test = Trim(.Text) Like "Affiche*"
.Text = Replace(.Text, IIf(test, "Affiche", "Masque"), IIf(test, "Masque", "Affiche"))
End With
With ActiveSheet.Shapes(Application.Caller)
.Fill.ForeColor.RGB = IIf(test, RGB(155, 187, 89), RGB(79, 129, 189))
.Line.ForeColor.RGB = IIf(test, RGB(113, 137, 63), RGB(56, 93, 138))
End With
For Each s In Sheets
If s.Name <> "Accueil" And Left(s.Name, 1) = der Then s.Visible = test
Next
End Sub