L'indice n'appartient pas à la sélection
Bonjour,
Etant débutant dans VBA, j'aurai besoin de votre précieuse aide afin de régler un problème surement simple à résoudre pour la plupart d'entre vous.
Je n'arrive pas à comprendre ce qui ne va pas dans mon code, quand j'essaye de le mettre en marche il y a le message d'erreur "l'indice n'appartient pas à la sélection" qui apparaît.
le code que j'essaye de faire tourner est le suivant :
Sub ETAT_FI()
Dim wb As Workbook
Set wb = Workbooks.Open("C:\Users\YMENDILI\Desktop\PROCESS FI\extraction.xlsx")
Set extraction = Workbooks("extraction.xlsx")
Set extra = Workbooks("extraction.xlsx").Worksheets("extra")
Set MACRO_ETAT_FI = Workbooks("MACRO_ETAT_FI.xlsm")
Set Tableau = Worksheets("Tableau")
extra.Activate
Tableau.Activate
extra.Columns("A:EF").Copy MACRO_ETAT_FI.Sheets("Tableau").Columns(1)
Sheets("Gestion").Select
extraction.Close SaveChanges:=False
End Sub
Je vous remercie par avance.
AMAYAS
Bonjour Amayas, bonjour le forum,
Essaie comme ça :
Sub ETAT_FI()
Dim wb As Workbook
Dim MACRO_ETAT_FI As Workbook
Dim extra As Worksheet
Dim tableau As Worksheet
Set wb = Workbooks.Open("C:\Users\YMENDILI\Desktop\PROCESS FI\extraction.xlsx")
Set extra = wb.Worksheets("extra")
Set MACRO_ETAT_FI = Workbooks("MACRO_ETAT_FI.xlsm")
Set tableau = MACRO_ETAT_FI.Worksheets("Tableau")
extra.Columns("A:EF").Copy tableau.Range("A1")
MACRO_ETAT_FI.Activate
Sheets("Gestion").Select
wb.Close SaveChanges:=False
End SubSalut le Fil
Tout d’abords Je vois que toutes tes variables ne sont pas déclarées...
Donc dans un premier temps tu vas dans les options [Outils] [Options...] [Éditeur] et tu coches Déclaration des variables obligatoires, cela t'éviteras pas pas de problèmes avant l’exécution de ton code.
Ensuite il faut prendre l'habitude de compiler ton code avant de l’exécuter [Débogage] [Compiler VBA Project].
Pour en revenir à ton problème [L'indice n'appartiens pas à la sélection] doit venir du fait que tu charge un feuille, un classeur qui n'existe pas donc vérifie les noms de tes classeurs et feuilles.
Tu cherche à faire quoi ici...
extra.Columns("A:EF").Copy MACRO_ETAT_FI.Sheets("Tableau").Columns(1)Si tu veux sélectionner les colonnes "A" à "F" tu fais
extra.Columns("A:F").Copy MACRO_ETAT_FI.Sheets("Tableau").Columns(1)Si tu veux sélectionner les colonnes "A"; "E" et "F"
extra.Columns("A:A, E:E, F:F").Copy MACRO_ETAT_FI.Sheets("Tableau").Columns(1)
'on ne se dispèrce pas dans le code, et on prends les mêmes notations partout.
extra.Columns("A:EF").Copy MACRO_ETAT_FI.Sheets("Tableau").Columns("A")En espérant avoir pu t'aider.