Erreur d'exécution 9 : l'indice n'appartient pas à la sélection
E
Bonjour à tous,
Ce sujet est mainte fois abordé. J'ai vraiment cherché mais pas trouvé de solution fiable.
Le contexte j'ai mon fichier essai.xlsm qui doit copier les cellules du fichier Sitops.csv.
Pour se faire il va ouvrir le fichier Sitops.csv sélectionner toutes les cellules et les copier dans le fichier essai.xlsm
En pas à pas aucun problème. En exécution automatique sa plante je me met sur mon code de macro relance et aucun problème.
Mon fichier essai.xlsm à comme feuille la feuille test
Mon fichier Sitops.csv la feuille Sitops
Des idées de solutions ?
Merci d'avance
Voici mon code
Sub Copier_Coller_SITOPS()
CreateObject("Shell.Application").Open ("C:\Users\e.devilder\Desktop\Stagiaire Devilder\rapport SITOPS\Sitops.csv")
Application.Wait (Now + TimeValue("0:00:1"))
Dim Cl1 As Workbook
Dim Cl2 As Workbook
Application.Wait (Now + TimeValue("0:00:1"))
Set Cl2 = Workbooks("Sitops.csv")
Set Cl1 = Workbooks("essai.xlsm")
'Workbooks("Sitops.csv").Activate
Cl2.Activate
'Sheets("Feuil1").Activate
Cells.Copy
Cl1.Activate
'Sheets("Feuil2").Activate
Range("A1").Select
ActiveSheet.Paste
'Dim wkbSource As Workbook '# Variable pour le classeur Source
'Dim wksDest As Worksheet '# Variable pour la feuille Destination
'# Déclaration du classeur Source
'Set wkbSource = Workbooks("Sitops.xlsx")
'# Declaration de la feuille Destination
'Set wksDest = ThisWorkbook.Worksheets("test")
'# Pour une cellule (Attention il faut utiliser Cells impérativement et pas Range sauf dans la source où c'est possible)
'wksDest.Cells(1, 1).Value = wkbSource.Worksheets("test").Cells.Value
'# Pour une ligne entière (on "colle" la ligne 3 du classeur source dans la ligne 2 du classeur destination)
'Feuil1.Rows(2).Value = wkbSource.Worksheets("maFeuilleSource").Rows(3).Value
'# On décharge les variables de la mémoire
'Set wksDest = Nothing
'Set wkbSource = Nothing
'
'
'Application.Windows("Sitops").Activate
'Application.Workbooks("Sitops.csv").Activate
'Application.Worksheets("Sitops").Activate
'ActiveSheet.Range("A1").Activate
'Cells.Select
' Selection.Copy
' Windows("test.xlsm").Activate
' Range("A1").Select
'ActiveSheet.Paste
'Application.CutCopyMode = False
'Worksheets("Sitops").Activate
'ActiveWindow.Close
End SubBonjour,
essaie ceci
Sub Copier_Coller_SITOPS()
Set Cl1 = ThisWorkbook
Set ws1 = Cl1.sheets("test") 'feuille test du classeur ouvert (contenant la macro)
Set Cl2 = Workbooks.Open("C:\Users\e.devilder\Desktop\Stagiaire Devilder\rapport SITOPS\Sitops.csv")
Cl2.Sheets(1).UsedRange.Copy ws1.Range("A1")
End SubE
Ça marche nickel !!
Je dois juste enregistrer le fichier csv en xlsx mais parfait.
Un grand merci à toi