Erreur d'execution '9', l'indice n'appartient pas à la sélection

ArnaudBernardeau

XLDnaute Junior
Bonjour,
Je poste ce message car je suis bloqué depuis plusieurs jours sur un problème qui me rend fou!
J'espère donc que vous pourrez m'aider, ça serait très sympa en tout cas.

Je suis en train de créer un petit logiciel d'aide pour le service de maintenance de ma boîte et malgré mes faibles compétences jai réussi à obtenir qqch qui tournait bien jusqu'à ce que le message suivant s'affiche à chaque fois que j'essaie d'ouvrir un des deux UserForms: "Erreur dexecution '9', l'indice n'appartient pas à la sélection".

Ceci apparaît dans les onglets "Gestion des pannes" et "Annuaire" du fichier joint...

Pourriez vous m'expliquer pourquoi ce message s'affiche s'il vous plaît?

De plus j'aimerai mettre en place une fonction recherche pour pouvoir retrouver une ligne dans un tableau mais je ne sais pas du tout comment faire...

Merci d'avance pour votre aide,

Arnaud
 

Pièces jointes

  • maintenance stage v1.xlsm
    964.3 KB · Affichages: 65

camarchepas

XLDnaute Barbatruc
Re : Erreur d'execution '9', l'indice n'appartient pas à la sélection

Bonjour,

L'anomalie vient de l'opération sur la feuille ENTRETIEN qui n'existe pas dans ce classeur

Cordialement

Code:
Private Sub UserForm_Initialize()

Application.ScreenUpdating = False
ThisWorkbook.Unprotect
Sheets("ENTRETIEN").Unprotect
Sheets("Affichage").Unprotect
Sheets("Historique Pannes").Unprotect
Sheets("Gestion des Stocks").Unprotect
Sheets("Catalogue pieces").Unprotect
Sheets("Annuaire Sociétés").Unprotect
Sheets("Historique Commentaire").Unprotect




End Sub
 

ArnaudBernardeau

XLDnaute Junior
Re : Erreur d'execution '9', l'indice n'appartient pas à la sélection

Bonjour camarchepas,

Merci beaucoup pour la réponse si rapide.
Malheureusement, une fois les feuilles non existantes supprimées, le problème persiste...

Merci pour votre aide!

Cordialement,

Arnaud
 

Misange

XLDnaute Barbatruc
Re : Erreur d'execution '9', l'indice n'appartient pas à la sélection

Bonjour
Même problème à la fermeture de ton formulaire pour protéger les feuilles.
Quand tu as ce genre de pb, quand tu as l'alerte, appuies sur la touche F8 pour lire le programme ligne à ligne et voir où il s'arrête. Au besoin, ajoute un point d'arrêt en début de macro pour être sur d'avoir la main.
 

camarchepas

XLDnaute Barbatruc
Re : Erreur d'execution '9', l'indice n'appartient pas à la sélection

Bonjour Misange, Le Forum , Re Arnaud,

Bon , en regardant pluss prés , y' a un peu de matière , mais cela demanderait à être optimisé.

Par exemple la protection et déprotection peut être mise en procédures communes, car plutot que d'enlever dans les 3 userforms l'anomalie due à la feuille manquante, tu n'aurais qu'a le faire une fois.

Les tris peuvent être également optimisés en cernant de manière automatique le bon nombre de lignes à traiter .

J'attends de voir si tu repasses avant d'éventuellement taper dans le code.

Cordialement
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Erreur d'execution '9', l'indice n'appartient pas à la sélection

Bonsoir le fil, bonsoir le forum,

Le code ci-dessous (à mettre dans le composant ThisWorkbook) permet de protéger les onglets sans les nommer en utilisant leur position dans le classeur. À l'ouverture les onglets que tu auras choisis via le Select Case seront protégés mais pourront être modifiés via une UserForm. Cela signifie que tu n'as plus besoin de Déprotéger avant l'édition puis Protéger après la fermeture de l'UserForm.
Si tu veux l'appliquer à tous les onglets, Suprimme les lignes :

Code:
Select Case I 'agit en fonction de I
     Case 1, 3 'cas premier et troisième onglet (tu adapteras à ton cas)


End Select 'fin de l'action en fonction de I
Le code :
Code:
Private Sub Workbook_Open() 'à l'ouverture du classeur
Dim I As Byte 'déclare la variable I (Incrément)

For I = 1 To Sheets.Count 'boucle sur tous les onglets du classeur
    Select Case I 'agit en fonction de I
        Case 1, 3 'cas premier et troisième onglet (tu adapteras à ton cas)
            'protège l'onglet pour une édition manuelle mais permet la modification à partir d'une UserForm
            Sheets(I).Protect UserInterfaceOnly:=True
    End Select 'fin de l'action en fonction de I
Next I 'prochain onglet du classeur
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 147
Messages
2 085 767
Membres
102 968
dernier inscrit
Tmarti