(vba) optimiser code ...

Le
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

'-
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #5283811
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"
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

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



j-pascal
Le #5283801
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"
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"
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

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







Mgr Banni
Le #5151161
bonsoir jp
peut-être comme ceci :

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

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

"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

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



j-pascal
Le #5151151
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"
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"
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

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







Daniel.C
Le #5151141
C'est pour cela que j'ai mis "On Error Resume Next"; ils seront ignorés.
Daniel
"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"
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"
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

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










j-pascal
Le #5151131
Maintenant, j'en suis sûr ;-)

Merci

JP

"Daniel.C"
C'est pour cela que j'ai mis "On Error Resume Next"; ils seront ignorés.
Daniel
"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"
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"
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

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














j-pascal
Le #5151121
Bonsoir,

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

JP

"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"
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

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







j-pascal
Le #5151091
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"
bonsoir jp
peut-être comme ceci :

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

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

"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

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







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

"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"
bonsoir jp
peut-être comme ceci :

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

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

"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

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










MichDenis
Le #5151061
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"
je m'en doutais
aussi retourne-je dans ma sacristie, sapristi
Mgr T.B.

"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"
bonsoir jp
peut-être comme ceci :

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

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

"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

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










Publicité
Poster une réponse
Anonyme