Bonjur
Dans une feuille excel, j'ai un douzaine d'images que je veux pouvoir , par exemple masquer rapidement.
Dans une private sub dans la feuille correspondante, je peux faire par ex
Set p1 = ActiveSheet.Shapes("dodeq")
Set p2 = ActiveSheet.Shapes("dodbg")
Set p3 = ActiveSheet.Shapes("dodbd")
Set p4 = ActiveSheet.Shapes("dleq")
Set p5 = ActiveSheet.Shapes("dlbd")
Set p6 = ActiveSheet.Shapes("dlbg")
Set p7 = ActiveSheet.Shapes("dblbg")
Set p8 = ActiveSheet.Shapes("dblbd")
Set p9 = ActiveSheet.Shapes("dbleq")
Set p10 = ActiveSheet.Shapes("logbd")
Set p11 = ActiveSheet.Shapes("logbg")
Set p12 = ActiveSheet.Shapes("logeq")
'0
If Range("d149").Value = "" Then
i1.Visible = False
i2.Visible = False
i3.Visible = False
i3.Visible = False
i4.Visible = False
i5.Visible = False
i6.Visible = False
i7.Visible = False
i8.Visible = False
i9.Visible = False
i10.Visible = False
i11.Visible = False
i12.Visible = False
End If
bon, ça marche, mais c'est pas sport, surtout que je vais avoir plus de cas semblables à traiter selon des mécanismes voisins et ça va vite devenir un code énorme pour rien
donc j'ai tenté un for...next
comme ceci:
Dim x As Integer
Dim p As String
Dim px As String
Set p1 = ActiveSheet.Shapes("dodeq")
Set p2 = ActiveSheet.Shapes("dodbg")
Set p3 = ActiveSheet.Shapes("dodbd")
Set p4 = ActiveSheet.Shapes("dleq")
Set p5 = ActiveSheet.Shapes("dlbd")
Set p6 = ActiveSheet.Shapes("dlbg")
Set p7 = ActiveSheet.Shapes("dblbg")
Set p8 = ActiveSheet.Shapes("dblbd")
Set p9 = ActiveSheet.Shapes("dbleq")
Set p10 = ActiveSheet.Shapes("logbd")
Set p11 = ActiveSheet.Shapes("logbg")
Set p12 = ActiveSheet.Shapes("logeq")
If Range("d149").Value = "" Then
For x = 1 To 12
Shapes("p" & x).Visible = false
Next x
End If
mais ça marche pas. Mon Shapes lui plait pas . Pas plus que directement écrire px, "p" & x etc etc. Quelqu'un peut il me donner l'astuce syntaxique qui débloquera le chose ???
merci beaucoup
R Boini
Dans une feuille excel, j'ai un douzaine d'images que je veux pouvoir , par exemple masquer rapidement.
Dans une private sub dans la feuille correspondante, je peux faire par ex
Set p1 = ActiveSheet.Shapes("dodeq")
Set p2 = ActiveSheet.Shapes("dodbg")
Set p3 = ActiveSheet.Shapes("dodbd")
Set p4 = ActiveSheet.Shapes("dleq")
Set p5 = ActiveSheet.Shapes("dlbd")
Set p6 = ActiveSheet.Shapes("dlbg")
Set p7 = ActiveSheet.Shapes("dblbg")
Set p8 = ActiveSheet.Shapes("dblbd")
Set p9 = ActiveSheet.Shapes("dbleq")
Set p10 = ActiveSheet.Shapes("logbd")
Set p11 = ActiveSheet.Shapes("logbg")
Set p12 = ActiveSheet.Shapes("logeq")
'0
If Range("d149").Value = "" Then
i1.Visible = False
i2.Visible = False
i3.Visible = False
i3.Visible = False
i4.Visible = False
i5.Visible = False
i6.Visible = False
i7.Visible = False
i8.Visible = False
i9.Visible = False
i10.Visible = False
i11.Visible = False
i12.Visible = False
End If
bon, ça marche, mais c'est pas sport, surtout que je vais avoir plus de cas semblables à traiter selon des mécanismes voisins et ça va vite devenir un code énorme pour rien
donc j'ai tenté un for...next
comme ceci:
Dim x As Integer
Dim p As String
Dim px As String
Set p1 = ActiveSheet.Shapes("dodeq")
Set p2 = ActiveSheet.Shapes("dodbg")
Set p3 = ActiveSheet.Shapes("dodbd")
Set p4 = ActiveSheet.Shapes("dleq")
Set p5 = ActiveSheet.Shapes("dlbd")
Set p6 = ActiveSheet.Shapes("dlbg")
Set p7 = ActiveSheet.Shapes("dblbg")
Set p8 = ActiveSheet.Shapes("dblbd")
Set p9 = ActiveSheet.Shapes("dbleq")
Set p10 = ActiveSheet.Shapes("logbd")
Set p11 = ActiveSheet.Shapes("logbg")
Set p12 = ActiveSheet.Shapes("logeq")
If Range("d149").Value = "" Then
For x = 1 To 12
Shapes("p" & x).Visible = false
Next x
End If
mais ça marche pas. Mon Shapes lui plait pas . Pas plus que directement écrire px, "p" & x etc etc. Quelqu'un peut il me donner l'astuce syntaxique qui débloquera le chose ???
merci beaucoup
R Boini