Erreur d'exécution '9
Bonjour,
Le sujet du post fait surement redite mais je suis confronté à cette erreur (9) et je ne comprends pas pourquoi.
Je suis en train de faire un petit programme qui vas chercher de la donnée dans d'autres fichiers (un seul pour l'exemple). Info qui peut être utile (en vrai j'en sais rien ^^) les fichiers sources sont dans des dossiers réseau.
Voilà ma maccro:
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim Chemin As String, Fichier As String, tota As String
Dim i As Long
For i = 2 To 23
Chemin = "\\XXX.XX.XXXXX.net\rtc-blai\proj01\XXXXXX\UEP_X_XXXXXXXX\TDBXXXXXX\XXXXXX\mois"
Fichier = "JANVIER.xlsx"
tota = Chemin & "\" & Fichier
Workbooks.Open (tota)
Workbooks(Fichier).Activate
Workbooks(Fichier).Sheets("Feuil" & i).Range("E18:E26").Select
Selection.Copy
Workbooks("STSUIVI.xlsm").Activate
Workbooks(Chemin & "STSUIVI.xlsm").Sheets("Feuil1").Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Next i
L'erreur intervient sur la ligne : "Workbooks(Fichier).Sheets("Feuil" & i).Range("E18:E26").Select"
Il me dit l'inidice n'appartient pas à la sélection. Mais je ne vois pas quel élément pose problème. Car pour workbooks(fichier) cet élément marche pour la ligne précédente. Pour Sheets("Feuil" & i), les feuilles ne sont pas renommées donc théoriquement ça devrai marcher. Et pour le Range ya rien d'exceptionnel (enfin je crois).
Je suis novice don je vous demande pardon pour la "non clarté" de ma question,
En espérant que vous pourrez m'aider,
Merci au forum !
essaie ainsi
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim Chemin As String, Fichier As String, tota As String
Dim i As Long
For i = 2 To 23
Chemin = "\\XXX.XX.XXXXX.net\rtc-blai\proj01\XXXXXX\UEP_X_XXXXXXXX\TDBXXXXXX\XXXXXX\mois"
Fichier = "JANVIER.xlsx"
tota = Chemin & "\" & Fichier
Workbooks.Open (tota)
Workbooks(Fichier).Sheets("Feuil" & i).Range("E18:E26").Copy
Workbooks("STSUIVI.xlsm").Sheets("Feuil1").Range("A" & i).PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Next iSalut le forum et merci à h2so4 pour ta réponse supere rapide.
Merci pour ta solution, mais cela me déclenche la même erreur sur la ligne :
Workbooks(Fichier).Sheets("Feuil" & i).Range("E18:E26").CopyJ'étais à l'origine passé par un select pour essayer de "contourner" mon problème.
Si vous avez des idées de résolution ou besoin d'infos supplémentaires, n'hésitez pas !!!!
Bonne journée
J'ai trouvé comment régler le soucis.
Private Sub Workbook_Open()
Application.ScreenUpdating = False
Dim Chemin As String, Fichier As String, tota As String, wb_B As Workbook
Dim i As Long, l As Long
Chemin = "\\XXX.XX.XXXXX.net\rtc-blai\proj01\XXXXXX\UEP_X_XXXXXXXX\TDBXXXXXX\XXXXXX\mois"
Fichier = "JANVIER.xlsx"
tota = Chemin & "\" & Fichier
Workbooks.Open (tota)
Workbooks(Fichier).Activate
For i = 1 To 22
On Error GoTo Suite
Workbooks(Fichier).Sheets(i).Range("E18:E26").Copy
Workbooks("STSUIVI.xlsm").Activate
Workbooks("STSUIVI.xlsm").Sheets("Feuil1").Range(Cells(i, 1), Cells(i, 9)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Suite:
Next i
Workbooks(Fichier).Close SaveChanges:=TrueJe n'ai pas compris le pourquoi mais ça marche!
Donc merci d'avoir donné de ton tps h2so4 et merci à ce forum qui me dépanne tous les jours !
Bonjour,
Je n'ai pas compris le pourquoi mais ça marche!
sans doute pour pas longtemps.
Tu remplaces .Sheets("Feuil" & i) qui correspond à un nom précis de feuille (qui n'existe pas dans ton fichier quand tu as l'errreur) par .Sheets(i) qui correspond à la position de la feuille.
Si demain qq'un bouge feuil1 ou bien en insère une nouvelle tu copieras n'importe quoi.
eric