Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(vba) optimiser code ...

15 réponses
Avatar
j-pascal
Bonsoir,

Comment puis-je optimiser ce code sous une forme "With ActiveSheet.Shapes
???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------

10 réponses

1 2
Avatar
Daniel.C
Bonsoir.
Le code suivant est plus court, mais est-il optilisé pour autant ?

On Error Resume Next
With ActiveSheet.Shapes
For i = 1 To .Count
.Item("Aide" & i).Visible = True
Next
End With

Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With ActiveSheet.Shapes
???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------



Avatar
j-pascal
Bonsoir Daniel,

Tu veux dire : optimisé = plus rapide ?

Je ne sais pas, mais je préfère de loin la concision de ton code.

Merci

JP

"Daniel.C" a écrit dans le message de news:

Bonsoir.
Le code suivant est plus court, mais est-il optilisé pour autant ?

On Error Resume Next
With ActiveSheet.Shapes
For i = 1 To .Count
.Item("Aide" & i).Visible = True
Next
End With

Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With ActiveSheet.Shapes
???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------







Avatar
Mgr Banni
bonsoir jp
peut-être comme ceci :

ActiveSheet.Shapes(Array("Aide1,Aide2,Aide3,Aide4")).Visible = True

non testé...et heureusement!
Mgr T.B.

"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With ActiveSheet.Shapes
???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------



Avatar
j-pascal
Re,

J'ai un doute ...
Si sur la feuille active j'ai d'autres Shapes que les "Aides", le compteur
(i) va aller au delà du dernier numéro de : Shapes("Aide..").
Dit autrement : Si j'ai
5 "ActiveSheet.Shapes("Aide x")" et
3 "ActiveSheet.Shapes("Toto x"), que va-t-il se passer ?

JP

"Daniel.C" a écrit dans le message de news:

Bonsoir.
Le code suivant est plus court, mais est-il optilisé pour autant ?

On Error Resume Next
With ActiveSheet.Shapes
For i = 1 To .Count
.Item("Aide" & i).Visible = True
Next
End With

Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With ActiveSheet.Shapes
???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------







Avatar
Daniel.C
C'est pour cela que j'ai mis "On Error Resume Next"; ils seront ignorés.
Daniel
"j-pascal" a écrit dans le message de news:

Re,

J'ai un doute ...
Si sur la feuille active j'ai d'autres Shapes que les "Aides", le compteur
(i) va aller au delà du dernier numéro de : Shapes("Aide..").
Dit autrement : Si j'ai
5 "ActiveSheet.Shapes("Aide x")" et
3 "ActiveSheet.Shapes("Toto x"), que va-t-il se passer ?

JP

"Daniel.C" a écrit dans le message de news:

Bonsoir.
Le code suivant est plus court, mais est-il optilisé pour autant ?

On Error Resume Next
With ActiveSheet.Shapes
For i = 1 To .Count
.Item("Aide" & i).Visible = True
Next
End With

Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With
ActiveSheet.Shapes ???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------










Avatar
j-pascal
Maintenant, j'en suis sûr ;-)

Merci

JP

"Daniel.C" a écrit dans le message de news:

C'est pour cela que j'ai mis "On Error Resume Next"; ils seront ignorés.
Daniel
"j-pascal" a écrit dans le message de news:

Re,

J'ai un doute ...
Si sur la feuille active j'ai d'autres Shapes que les "Aides", le
compteur (i) va aller au delà du dernier numéro de : Shapes("Aide..").
Dit autrement : Si j'ai
5 "ActiveSheet.Shapes("Aide x")" et
3 "ActiveSheet.Shapes("Toto x"), que va-t-il se passer ?

JP

"Daniel.C" a écrit dans le message de news:

Bonsoir.
Le code suivant est plus court, mais est-il optilisé pour autant ?

On Error Resume Next
With ActiveSheet.Shapes
For i = 1 To .Count
.Item("Aide" & i).Visible = True
Next
End With

Cordialement.
Daniel
"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With
ActiveSheet.Shapes ???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------














Avatar
j-pascal
Bonsoir,

Merci, je vais tester mais sur une autre application. Je te tiens au
courant.

JP

"Mgr Banni" a écrit dans le message de news:

bonsoir jp
peut-être comme ceci :

ActiveSheet.Shapes(Array("Aide1,Aide2,Aide3,Aide4")).Visible = True

non testé...et heureusement!
Mgr T.B.

"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With ActiveSheet.Shapes
???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------







Avatar
j-pascal
Testé, et erreur d'exécution 13 "incompatibilité de type"

Pas grave, la solution de Daniel.C me convient parfaitement.

Merci quand même,

JP

"Mgr Banni" a écrit dans le message de news:

bonsoir jp
peut-être comme ceci :

ActiveSheet.Shapes(Array("Aide1,Aide2,Aide3,Aide4")).Visible = True

non testé...et heureusement!
Mgr T.B.

"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With ActiveSheet.Shapes
???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------







Avatar
Mgr Banni
je m'en doutais
aussi retourne-je dans ma sacristie, sapristi
Mgr T.B.

"j-pascal" a écrit dans le message de news:
%
Testé, et erreur d'exécution 13 "incompatibilité de type"

Pas grave, la solution de Daniel.C me convient parfaitement.

Merci quand même,

JP

"Mgr Banni" a écrit dans le message de news:

bonsoir jp
peut-être comme ceci :

ActiveSheet.Shapes(Array("Aide1,Aide2,Aide3,Aide4")).Visible = True

non testé...et heureusement!
Mgr T.B.

"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With
ActiveSheet.Shapes ???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------










Avatar
MichDenis
Les Msg ont plus de résilience lorsqu'il s'agit de vider les burettes de vin !!!
;-))

Pourtant, tu y étais presque !

Comme ceci :
With Worksheets("Feuil1")
.Shapes.Range(Array("Aide1", "Aide2", "Aide3", "Aide4")).Visible = msoCTrue ' ou msoFalse
End With

P.S- Tu m'excusera j-pascal de ne pas te fournir un fichier exemple...
j'ai des problèmes avec cjoint !


"Mgr Banni" a écrit dans le message de news:

je m'en doutais
aussi retourne-je dans ma sacristie, sapristi
Mgr T.B.

"j-pascal" a écrit dans le message de news:
%
Testé, et erreur d'exécution 13 "incompatibilité de type"

Pas grave, la solution de Daniel.C me convient parfaitement.

Merci quand même,

JP

"Mgr Banni" a écrit dans le message de news:

bonsoir jp
peut-être comme ceci :

ActiveSheet.Shapes(Array("Aide1,Aide2,Aide3,Aide4")).Visible = True

non testé...et heureusement!
Mgr T.B.

"j-pascal" a écrit dans le message de news:

Bonsoir,

Comment puis-je optimiser ce code sous une forme "With
ActiveSheet.Shapes ???? End With" ?

Merci pour vos lumières,

JP

'----------------------
Private Sub essai_Montre()

ActiveSheet.Shapes("Aide1").Visible = True
ActiveSheet.Shapes("Aide2").Visible = True
ActiveSheet.Shapes("Aide3").Visible = True
ActiveSheet.Shapes("Aide4").Visible = True
etc...

End Sub

'----------------------










1 2