Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Erreur dans boucle sur plusieurs feuilles

  • Initiateur de la discussion Initiateur de la discussion GregExcel
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

GregExcel

Guest
Bonjour

Je bute sur une erreur en rouge dans la boucle suivante, j'ai un message du genre: Propriété ou méthode non gérée par objet

Private Sub Workbook_Open()

Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
WS.Unprotect Password:="***" 'oter la protection de la feuille
WS.Hyperlinks.Delete 'delete liens hypertexte
WS.Shapes("Image 1").Select 'select image 1 de la feuille
Selection.OnAction = "Image4_QuandClic" 'je souhaite affecter la macro "Image4....." à "Image 1"
WS.Protect Password:="***", DrawingObjects:=True, Contents:=True, Scenarios:=True 'protection de la feuille
Next WS

End Sub
Merci
@+ Greg
 
Re : Erreur dans boucle sur plusieurs feuilles

Merci pour vos réponses.

Pour Philippe: Oui le nom de la macro est orthographié de la même manière.

Pour info, si j'éxecute cette macro sur la feuille active telle que ci dessous cela fonctionne mais pas quand je l'adapte à une boucle...

Private Sub Workbook_Open()
Activesheet.Unprotect Password:="***"
Activesheet.Hyperlinks.Delete
Activesheet.Shapes("Image 1").Select
Selection.OnAction = "Image4_QuandClic"
Activesheet.Protect Password:="***", DrawingObjects:=True, Contents:=True, Scenarios:=True 'protection de la feuille
End Sub

J'ai mis en pièce jointe un exemple.
@+ Greg
 

Pièces jointes

Re : Erreur dans boucle sur plusieurs feuilles

Bonsoir à tous
Peut-être ça :
Code:
[COLOR="DarkSlateGray"][B]Private Sub Workbook_Open()

Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
'WS.Unprotect Password:="***"
WS.Hyperlinks.Delete
WS.Shapes("Image 1").OnAction = "Image4_QuandClic"
'WS.Protect Password:="***", DrawingObjects:=True, Contents:=True, Scenarios:=True
Next WS
End Sub[/B][/COLOR]
ROGER2327
#2492
 
Re : Erreur dans boucle sur plusieurs feuilles

Bonsoir à tous

Merci ROGER2327
Une merveille ! ça marche nickel !

Toutefois la macro a ses limites car si dans mon classeur j' ai une une feuille qui ne comporte pas l'image "Image 1", Excel retourne un message d'erreur du genre "L'élément portant ce nom est introuvable...."
Donc comment exclure dans la boucle les feuilles ne comportant pas d' "image 1" ? ou tester du genre If image 1 est présente alors....

@+ Greg
 
Re : Erreur dans boucle sur plusieurs feuilles

Re...
Peut-être ceci :
Code:
[COLOR="DarkSlateGray"][B]Private Sub Workbook_Open()

Dim WS As Worksheet
For Each WS In ThisWorkbook.Worksheets
'WS.Unprotect Password:="***"
WS.Hyperlinks.Delete
[COLOR="Red"]On Error Resume Next[/COLOR]
WS.Shapes("Image 1").OnAction = "Image4_QuandClic"
[COLOR="Red"]On Error Goto 0[/COLOR]
'WS.Protect Password:="***", DrawingObjects:=True, Contents:=True, Scenarios:=True
Next WS
End Sub[/B][/COLOR]
ROGER2327
#2493
 
Re : Erreur dans boucle sur plusieurs feuilles

Re,

Merci encore une fois ! Nickel !

Juste une petite question sans vouloir abuser et aussi parce que je voudrais comprendre plutôt que de faire du copier / coller bêtement...

Peux-tu me commenter brievement le code "On Error..." je me doute que cela gère les erreurs mais pourquoi le placer à cet endroit précis de la macro ?

On Error Resume Next
WS.Shapes("Image 1").OnAction = "Image4_QuandClic"
On Error Goto 0

Merci
@+ Greg
 
Re : Erreur dans boucle sur plusieurs feuilles

Re...
Les deux instructions encadrent la ligne où on veut éviter l'erreur.
On pourrait placer la première au début de la procédure, la deuxième à la fin, mais dans ce cas, toutes les lignes qui produiraient une erreur seraient ignorées. C'est un peu risqué ! Il vaut mieux placer ces instructions aux endroits où l'on sait qu'une erreur peut survenir sans mettre en cause le fonctionnement correct de toute la procédure.
Pour le détail des instructions On Error..., voyez l'aide VisualBasic.​
ROGER2327
#2497
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
7
Affichages
2 K
Réponses
14
Affichages
2 K
C
Réponses
1
Affichages
1 K
Cattleya97
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…