Bonjour, je vous souhaite un bon vendredi et agréable weekend à tous...
Mon problème du jour
j'ai une macro qui s'exécute et masque un shape (nomé Ok) dans une feuille après l'exécution d'une macro.
je souhaite que ce shape (forme qui sert de bouton) soit caché ou bien effacé de toutes les feuilles du classeur. car j'ai copié la feuille d'origine plusieurs fois.
Ci dessous le code qui me permet de masquer dans la feuille active.
Bonsoir CGU,
Sand fichier test, alors un peu au hasard :
VB:
Sub Masquer()
For Each F In Worksheets
If F.Name <> "Nom1" And F.Name <> "Nom2" Then ' Mettre ici les feuilles à exclure
On Error Resume Next
Sheets(F.Name).Shapes.Range(Array("Ok")).Visible = False
End If
Next F
End Sub
On parcout toutes les feuilles à l'exception de celles listées dans le If F.Name<>....
Bonjour Merci Sylvanu
Ci joint le code que j'ai retenu, on peut bien sur l'optimiser.
Merci ...
VB:
Option Explicit
' Déprotéger toutes les feuilles de calcul
Sub DéprotégerToutesLesFeuilles()
Dim fc As Worksheet
For Each fc In Worksheets
fc.Unprotect "123"
Next fc
End Sub
' Protéger toutes...
Bonsoir CGU,
Sand fichier test, alors un peu au hasard :
VB:
Sub Masquer()
For Each F In Worksheets
If F.Name <> "Nom1" And F.Name <> "Nom2" Then ' Mettre ici les feuilles à exclure
On Error Resume Next
Sheets(F.Name).Shapes.Range(Array("Ok")).Visible = False
End If
Next F
End Sub
On parcout toutes les feuilles à l'exception de celles listées dans le If F.Name<>....
Bonjour Merci Sylvanu
Ci joint le code que j'ai retenu, on peut bien sur l'optimiser.
Merci ...
VB:
Option Explicit
' Déprotéger toutes les feuilles de calcul
Sub DéprotégerToutesLesFeuilles()
Dim fc As Worksheet
For Each fc In Worksheets
fc.Unprotect "123"
Next fc
End Sub
' Protéger toutes les feuilles de calcul
Sub ProtégerToutesLesFeuilles()
Dim fc As Worksheet
For Each fc In Worksheets
fc.Protect "123"
Next fc
End Sub
Sub Masquer()
Dim f As Worksheet
Call DéprotégerToutesLesFeuilles
For Each f In Worksheets
If f.Name <> "Nom1" And f.Name <> "Nom2" Then ' Mettre ici les feuilles à exclure
On Error Resume Next
Sheets(f.Name).Shapes.Range(Array("Ok")).Visible = False
End If
Next f
Call ProtégerToutesLesFeuilles
End Sub
Bonsoir CGU,
Sand fichier test, alors un peu au hasard :
VB:
Sub Masquer()
For Each F In Worksheets
If F.Name <> "Nom1" And F.Name <> "Nom2" Then ' Mettre ici les feuilles à exclure
On Error Resume Next
Sheets(F.Name).Shapes.Range(Array("Ok")).Visible = False
End If
Next F
End Sub
On parcout toutes les feuilles à l'exception de celles listées dans le If F.Name<>....
Bonjour CGU,
On peut effectivement optimiser, et gagner du temps en ne déprotégeant/protégeant que les feuiles concernées :
VB:
Sub Masquer()
Dim f As Worksheet
Const mdp$ = "123"
For Each f In Worksheets
If f.Name <> "Nom1" And f.Name <> "Nom2" Then ' Mettre ici les feuilles à exclure
f.Unprotect mdp
On Error Resume Next
Sheets(f.Name).Shapes.Range(Array("Ok")).Visible = False
f.Protect mdp
End If
Next f
End Sub