Erreur d'Execution 9
Résolu
CEMOI
-
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
ccm81 Messages postés 10909 Date d'inscription Statut Membre Dernière intervention -
bonjour,
Etant débutante en VBA, je viens de créer à partir d'une macro que j'ai trouvé sur ce forum, une macro pour sécurisé une partie des mes feuilles excel de mon fichier.
Seulement quand je teste j'ai une "erreur d'execution '9' : l'indice n'appartient pas à la sélection".
Ci dessous mon code :
Sub AaaSectFeuille()
'
' AaaSectFeuille Macro
'
motpass = "Toto"
Groupe = Array("1(C)", "2(C)", "3(C)", "4(C)", "5(C)", "6(C)", "7(C)", "8(C)", "9(C)", "10(C)", "11(C)", "12(C)", "13(C)", "14(C)", "15(C)", "16(C)", "17(C)", "18(C)", "19(C)", "20(C)", "21(C)", "22(C)", "23(C)", "24(C)", "25(C)", "26(C)", "27(C)", "28(C)", "29(C)", "30(C)", "31(C)", "Para_CSH", "1(P)", "2(P)", "3(P)", "4(P)", "5(P)", "6(P)", "7(P)", "8(P)", "9(P)", "10(P)", "11(P)", "12(P)", "13(P)", "14(P)", "15(P)", "16(P)", "17(P)", "18(P)", "19(P)", "20(P)", "21(P)", "22(P)", "23(P)", "24(P)", "25(P)", "26(P)", "27(P)", "28(P)", "29(P)", "30(P)", "31(P)", "Para_PSL", "1(M)", "2(M)", "3(M)", "4(M)", "5(M)", "6(M)", "7(M)", "8(M)", "9(M)", "10(M)", "11(M)", "12(M)", "13(M)", "14(M)", "15(M)", "16(M)", "17(M)", "18(M)", "19(M)", "20(M)", "21(M)", "22(M)", "23(M)", "24(M)", "25(M)", "26(M)", "27(M)", "28(M)", "29(M)", "30(M)", "31(M)", "Para_MTE")
Motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur les feuilles", "")
If motpass = " " Then Exit Sub
If motpass <> "Toto" Then
MsgBox "Vous n'avez pas les droits"
Else
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For Each Feuille In Sheets(Groupe)
Feuille.Protect motpass
Next Feuille
Range("A1").Select
End If
End Sub.
Cela bloque ici : For Each Feuille In Sheets(Groupe)
J'ai vérifié tous les noms des feuilles et il n'y à pas d'erreurs.
A noter que ce code fonctionne sur un fichier qui contient moins de feuilles.
Pouvez-vous m'aidez s'il vous plaît?
Etant débutante en VBA, je viens de créer à partir d'une macro que j'ai trouvé sur ce forum, une macro pour sécurisé une partie des mes feuilles excel de mon fichier.
Seulement quand je teste j'ai une "erreur d'execution '9' : l'indice n'appartient pas à la sélection".
Ci dessous mon code :
Sub AaaSectFeuille()
'
' AaaSectFeuille Macro
'
motpass = "Toto"
Groupe = Array("1(C)", "2(C)", "3(C)", "4(C)", "5(C)", "6(C)", "7(C)", "8(C)", "9(C)", "10(C)", "11(C)", "12(C)", "13(C)", "14(C)", "15(C)", "16(C)", "17(C)", "18(C)", "19(C)", "20(C)", "21(C)", "22(C)", "23(C)", "24(C)", "25(C)", "26(C)", "27(C)", "28(C)", "29(C)", "30(C)", "31(C)", "Para_CSH", "1(P)", "2(P)", "3(P)", "4(P)", "5(P)", "6(P)", "7(P)", "8(P)", "9(P)", "10(P)", "11(P)", "12(P)", "13(P)", "14(P)", "15(P)", "16(P)", "17(P)", "18(P)", "19(P)", "20(P)", "21(P)", "22(P)", "23(P)", "24(P)", "25(P)", "26(P)", "27(P)", "28(P)", "29(P)", "30(P)", "31(P)", "Para_PSL", "1(M)", "2(M)", "3(M)", "4(M)", "5(M)", "6(M)", "7(M)", "8(M)", "9(M)", "10(M)", "11(M)", "12(M)", "13(M)", "14(M)", "15(M)", "16(M)", "17(M)", "18(M)", "19(M)", "20(M)", "21(M)", "22(M)", "23(M)", "24(M)", "25(M)", "26(M)", "27(M)", "28(M)", "29(M)", "30(M)", "31(M)", "Para_MTE")
Motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur les feuilles", "")
If motpass = " " Then Exit Sub
If motpass <> "Toto" Then
MsgBox "Vous n'avez pas les droits"
Else
nombre = ActiveWorkbook.Sheets.Count
Application.ScreenUpdating = False
For Each Feuille In Sheets(Groupe)
Feuille.Protect motpass
Next Feuille
Range("A1").Select
End If
End Sub.
Cela bloque ici : For Each Feuille In Sheets(Groupe)
J'ai vérifié tous les noms des feuilles et il n'y à pas d'erreurs.
A noter que ce code fonctionne sur un fichier qui contient moins de feuilles.
Pouvez-vous m'aidez s'il vous plaît?
A voir également:
- Erreur d'Execution 9
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
9 réponses
Bonjour
Essaies ceci
Cdlmnt
Essaies ceci
Option Explicit Sub AaaSectFeuille() ' ' AaaSectFeuille Macro ' Dim motdepasse As String, motpass As String Dim n As Long, nombre As Long Dim groupe() motpass = "Toto" groupe = Array("1(C)", "2(C)", "3(C)", "4(C)", "5(C)", "6(C)", "7(C)", "8(C)", "9(C)", "10(C)", "11(C)", "12(C)", "13(C)", "14(C)", "15(C)", "16(C)", "17(C)", "18(C)", "19(C)", "20(C)", "21(C)", "22(C)", "23(C)", "24(C)", "25(C)", "26(C)", "27(C)", "28(C)", "29(C)", "30(C)", "31(C)", "Para_CSH", "1(P)", "2(P)", "3(P)", "4(P)", "5(P)", "6(P)", "7(P)", "8(P)", "9(P)", "10(P)", "11(P)", "12(P)", "13(P)", "14(P)", "15(P)", "16(P)", "17(P)", "18(P)", "19(P)", "20(P)", "21(P)", "22(P)", "23(P)", "24(P)", "25(P)", "26(P)", "27(P)", "28(P)", "29(P)", "30(P)", "31(P)", "Para_PSL", "1(M)", "2(M)", "3(M)", "4(M)", "5(M)", "6(M)", "7(M)", "8(M)", "9(M)", "10(M)", "11(M)", "12(M)", "13(M)", "14(M)", "15(M)", "16(M)", "17(M)", "18(M)", "19(M)", "20(M)", "21(M)", "22(M)", "23(M)", "24(M)", "25(M)", "26(M)", "27(M)", "28(M)", "29(M)", "30(M)", "31(M)", "Para_MTE") motdepasse = InputBox("Entrer le mot de passe :", "Mettre la protection sur les feuilles", "") If motpass = " " Then Exit Sub If motpass <> "Toto" Then MsgBox "Vous n'avez pas les droits" Else nombre = UBound(groupe) Application.ScreenUpdating = False For n = 0 To nombre Sheets(groupe(n)).Protect motpass Next n Range("A1").Select End If End Sub
Cdlmnt
Bonjour CCm81,
Merci pour votre retour.
J'ai testé votre macro mais elle bloque avec le même message d'erreur à ce niveau là :
Sheets(groupe(n)).Protect motpass
Petit précision, j'ai mis le code dans un module lié a un bouton d'activation.
Je ne comprends pas pourquoi cela bloque ???
Merci pour votre aide.
Cdt.
Merci pour votre retour.
J'ai testé votre macro mais elle bloque avec le même message d'erreur à ce niveau là :
Sheets(groupe(n)).Protect motpass
Petit précision, j'ai mis le code dans un module lié a un bouton d'activation.
Je ne comprends pas pourquoi cela bloque ???
Merci pour votre aide.
Cdt.
Merci pour ce retour et votre dossier cela fonctionne dans le votre et sur le mien qui contient beaucoup de feuille des que je le teste sur le mien qui à 120 feuilles ( à noter que je n'en sécurise que 95), cela bloque toujours a cette endroit .
J'ai d'ailleurs copier coller votre code et modifier le groupe et cela bloque.
Soit il y a quelque chose qui m'échappe, soit c'est la parenthèse dans le nom de mes feuilles qui pose problème.
Qu'en pensez-vous?
un grand merci pour votre aide.
J'ai d'ailleurs copier coller votre code et modifier le groupe et cela bloque.
Soit il y a quelque chose qui m'échappe, soit c'est la parenthèse dans le nom de mes feuilles qui pose problème.
Qu'en pensez-vous?
un grand merci pour votre aide.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Vérifies que les noms de tes feuilles sont bien reportés dans ton tableau (attention aux espaces malheureux qui ne se voient pas forcément dans les onglets!)
https://mon-partage.fr/f/Ee8H2XG2/
Cdlmnt
https://mon-partage.fr/f/Ee8H2XG2/
Cdlmnt
Bonjour CCm81,
Après vérification du nom de toute les feuilles, le code fonctionne (un espace manquait) .
Merci pour ton aide.
Puis-je abuser en te posant une autre question?
J'ai copié coller ton code mais cette fois ci j'ai mis la fontion Unprotect sur cette ligne :
Sheets(groupe(n)).Unprotect motpass
Or lorsque je teste j'ai ce message d'erreur : "Erreur d'exécution '1004' - "Mot de passe non valide.." et au debogage c'est " Sheets(groupe(n)).Unprotect motpass" qui est en erreur jaune.
Je ne comprends pas pourquoi?
Encore un grand merci pour ton aide !!!
Après vérification du nom de toute les feuilles, le code fonctionne (un espace manquait) .
Merci pour ton aide.
Puis-je abuser en te posant une autre question?
J'ai copié coller ton code mais cette fois ci j'ai mis la fontion Unprotect sur cette ligne :
Sheets(groupe(n)).Unprotect motpass
Or lorsque je teste j'ai ce message d'erreur : "Erreur d'exécution '1004' - "Mot de passe non valide.." et au debogage c'est " Sheets(groupe(n)).Unprotect motpass" qui est en erreur jaune.
Je ne comprends pas pourquoi?
Encore un grand merci pour ton aide !!!
Peut être as tu oublié d'affecter Toto à la variable motpass ?
J'ai mis motpass en constante en début de code, mais ce n'est pas ça qui peut provoquer/supprimer l'erreur
https://mon-partage.fr/f/4dxePVqQ/
Cdlmnt
J'ai mis motpass en constante en début de code, mais ce n'est pas ça qui peut provoquer/supprimer l'erreur
https://mon-partage.fr/f/4dxePVqQ/
Cdlmnt
Merci beaucoup !
Tout fonctionne.
Merci pour votre patience d'autant que cela m'a permis de voir et de comprendre mes erreurs.
J'apprends doucement mais sûrement...
Tout fonctionne.
Merci pour votre patience d'autant que cela m'a permis de voir et de comprendre mes erreurs.
J'apprends doucement mais sûrement...
De rien
Bonne fin de journée
Penses à déclarer les variables (Dim ...) , la directive Option Explicit en début de module t'oblige à le faire
L'utilisation des constantes (Const motpass = "Toto") permet de les utiliser dans plusieurs procédures, et en cas de modification, tu n'as qu'une seule intervention à faire et sans toucher au code des procédures !
Cdlmnt
Bonne fin de journée
Penses à déclarer les variables (Dim ...) , la directive Option Explicit en début de module t'oblige à le faire
L'utilisation des constantes (Const motpass = "Toto") permet de les utiliser dans plusieurs procédures, et en cas de modification, tu n'as qu'une seule intervention à faire et sans toucher au code des procédures !
Cdlmnt