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 i

Salut 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").Copy

J'é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:=True

Je 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

Rechercher des sujets similaires à "erreur execution"