bonsoir
j'ai des images (les même)dans plusieurs feuilles
et je voudrais les masquer ou les afficher le souci C que les feuilles peuvent etre renommer donc le chemin peux changer
demax: tu m'as énervé (tu as réveillé ma sciatique)
Code:
Sub husp()
'toggle: 1,h -> 2,uh
Dim s As Worksheet
Dim sp As Shape
For Each s In Worksheets
For Each sp In s.Shapes
sp.Visible = Not sp.Visible
Next
Next
End Sub
Sub husp2()
'toggle: 1,h -> 2,uh
Dim s As Worksheet
Dim sp As Shape
For Each s In Worksheets
For Each sp In s.Shapes
If sp.Type = 13 Then
sp.Visible = Not sp.Visible
End If
Next
Next
End Sub
JCGL: Exact, mais il m'est arrivé suite à je ne sais plus quel code
que les fléches des filtres soient effacées.
re
donc ne croyez pas que j'attends d'avoir le code sur un plateau je cherche sur google en parrallele
for each pourrez convenir à ma situation mais comprends pas:
ThisWorkbook
Worksheets avec s sans s
Feuille ...
donc j'ai 4 feuilles qui contient 10 images identiques chacune que je masque/affiche avec une macro
Sub husp2()
[COLOR="Green"]'toggle: 1,h -> 2,uh[/COLOR]
[COLOR="Green"]'déclarations[/COLOR]
Dim s As Worksheet
Dim sp As Shape
[COLOR="Green"]'parcours de toutes les feuilles en excluant les graphiques
'de ce classeur[/COLOR]
For Each s In ThisWorkBook.Worksheets
For Each sp In s.Shapes [COLOR="Green"]' dans tous les formes[/COLOR]
If sp.Type = 13 Then [COLOR="Green"]'si ce sont des images[/COLOR]
sp.Visible = Not sp.Visible [COLOR="Green"]' alors masque/démasque[/COLOR]
End If
Next
Next
End Sub
Dim s As Worksheet
For Each s In ThisWorkbook.Worksheets
s.Shapes("Image 37").Visible = False
s.Shapes("Image 38").Visible = False
s.Shapes("Image 39").Visible = False
demax:
La macro que je proposais permet lors de sa 1ère exécution
de masquer les images (et uniquement les images)
lors de sa seconde exécution: les images seront démasquées.
Donc associée à un bouton sur une barre d'outils, la macro permet de :
(en l'état tout le classeur est pris en compte)
1 clic -> masque
2 clic -> démasque
et ce, quels que soient le noms des images.
Pour ne considérer que la feuille active
Code:
sub macroimagesfeuilleactive()
Dim s as worksheet
Dim sp as Shape
set s=ActiveSheet
For Each sp In s.Shapes ' dans tous les formes
If sp.Type = 13 Then 'si ce sont des images
sp.Visible = Not sp.Visible ' alors masque/démasque
End If
Next
end sub