L'erreur se situe sur la ligne "Workbooks.Open Filename:=PathName & "\" & Filename" lors de la seconde itération.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 Sub Test_Budget() Dim Year As String Dim i As Integer Year = Workbooks("CF").Sheets("CSD").Range("B5") Workbooks("CF").Activate For i = 1 To 4 PathName = Cells(1, i + 1) Filename = Cells(2, i + 1) TabName = Cells(3, i + 1) ControlFile = "CF" Workbooks.Open Filename:=PathName & "\" & Filename Workbooks(Filename).Sheets(Year).Copy after:=Workbooks(ControlFile).Sheets(i + 1) Workbooks(ControlFile).Sheets(i + 2).Name = TabName Workbooks(Filename).Close SaveChanges:=False i = i + 1 Next End Sub
Je me permets de vous glisser le second code qui fonctionne très bien. C'est le premier que j'ai essayé avec seulement 2 classeurs, afin de tester le code à petite échelle.
Ce que je ne comprends pas c'est pourquoi il trouve C lors de la première boucle et ne le trouve plus lors du second. Est-ce que je dois retourner à la racine au niveau de l'arborescence ? Est-ce que le code actuel cherche , lors de la deuxième itération, à effectuer le chemin à partir de "l'arrivée" de la fin de la boucle précédente, ou bien il repart au tout début ?
Merci pour votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 Sub Test_Extournes() Dim Year As String Year = Workbooks("CF").Sheets("CSD").Range("B5") Workbooks("CF").Activate 'EXTOURNES' PathName = Range("B1").Value Filename = Range("B2").Value TabName = Range("B3").Value ControlFile = "CF" Workbooks.Open "C:\Users\XXXX\Desktop\TestVBA\Extournes\Extournes.xlsx" Workbooks(Filename).Sheets(Year).Copy after:=Workbooks(ControlFile).Sheets(2) Workbooks(ControlFile).Sheets(3).Name = TabName Workbooks(Filename).Close 'BUDGET' PathName = Worksheets("CSD").Range("C1").Value Filename = Worksheets("CSD").Range("C2").Value TabName = Worksheets("CSD").Range("C3").Value ControlFile = "CF" Workbooks.Open "C:\Users\XXXX\Desktop\TestVBA\Budget\Budget.xlsx" Workbooks(Filename).Sheets(Year).Copy after:=Workbooks(ControlFile).Sheets(3) Workbooks(ControlFile).Sheets(4).Name = TabName Workbooks(Filename).Close End Sub
Partager