Erreur d'exécution "9" :L'indice n'appartient pas à la séléction

Fermé
sousou22927 Messages postés 1 Date d'inscription mardi 29 août 2017 Statut Membre Dernière intervention 29 août 2017 - Modifié le 29 août 2017 à 16:17
Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 - 29 août 2017 à 21:09
Bonjour,
j'ai un problème que je dois régler en urgence !
quand je clique sur un bouton dans la feuille DocumentXX , une erreur est générée : Erreur d'exécution "9" : L'indice n'appartient pas à la

voici le code dont la partie qui contient le bug apparemment :
Sub Alimentation_xlsx()
    
' Préparation de la colonne - TEXTE
    Columns("A:A").Select
    Selection.NumberFormat = "@"
    
' Copie des données
    Fich_xlsx = Sheets("Paramètres").Range("C5") & ".xlsx"
    RepFich_xlsx = ThisWorkbook.Path & "\" & Fich_xlsx
   
    Workbooks.Open Filename:=RepFich_xlsx

 ->   Windows(DocumentXX).Activate   ( la ligne de l'erreur)
  
  Sheets(FeuilTrav).Select
    Plagex = "A1:A" & DernLigne
    Range(Plagex).Select
    Selection.Copy
    Windows(Fich_xlsx).Activate
    ActiveSheet.Paste
End Sub


EDIT : Ajout des balises de code (la coloration syntaxique).

Explications disponibles ici :ICI

Merci d'y penser dans tes prochains messages.
Jordane45


et parfois pour la même ligne, l'erreur que je reçois c'est incompatibilité de type !!!!!

Merci d'avance pour votre aide !

1 réponse

Whismeril Messages postés 19021 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 16 avril 2024 928
29 août 2017 à 21:09
Bonsoir

Erreur d'exécution "9" :L'indice n'appartient pas à la séléction
signifie que tu essayes un "numéro d'enregistrement" (l'indice) est en dehors de ceux possibles.
Par exemple dans un tableau de 1 à 10, les indices 11 ou 0 n'existent pas.

c'est incompatibilité de type
veut dire, que le type de données dans la variable ne peut pas faire l'action que tu veux.
Toujours dans l'exemple du tableau, il n'acceptera pas du texte ou un booléen, seulement un entier.
Pour éviter ça, commence par mettre Option Explicit dans un module, (voir ici).

Donc à cette ligne
 Windows(DocumentXX).Activate
(je ne sais même pas à quoi sert Windows, je ne suis pas très bon en VBA) la variable DocumentXX contient un numéro (ou un nom?) de Window qui n'existe pas quand tu as la 1ere erreur, et par un exemple un nombre décimal quand tu as la seconde.
0