Bonjour à tous,
Je débute en VBA ne parviens pas à trouver mon erreur.
Mon objectif est pourtant très simple.
- Donner un chemin d'accès dans une cellule, menant a un dossier avec des .xlsx
- Faire une boucle parcourant les .xlsx afin de les modifier/dupliquer/déplacer ...
Le code en question :
Et sur le for each, j'ai l'erreur suivante :
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 Sub test1() Dim fso As Object Dim rep As String Dim X As Object Set fso = CreateObject("Scripting.FileSystemObject") rep = Cells(6, 3).Value & "\" 'répertoire actif à partir de C6 = C:\..\..\ MsgBox rep 'Vérification : OK For Each X In fso.GetFolder(rep) 'mes instructions, exemple: Workbooks.Open X 'Ouvre le xlsx original Sheets("Feuil1").Range("B4:C15").Copy 'Copier des données ActiveWorkbook.Close 'Ferme le xlsx original Workbooks.Add 'Créé un nouveau xlsx ActiveSheet.Paste Destination:=Range("A1") 'Y coller les données ActiveWorkbook.SaveAs "MODEL" 'Le nommer ActiveWorkbook.Close 'Ferme le nouveau xlsx Next X End Sub
J'ai pourtant regardé pas mal de forums (nombreux topics sur for each) et la docs microsoft, je ne sais pas pourquoi. J'ai également essayé en ajoutant un .SubFolders, mais meme resultat (de tout manière il n'y a pas de sous ossier dans mon cas).Erreur 438, propriété ou méthode non gérée par cet objet.
Cela pourrait-il venir de la version que j'utilise ? 365 proplus
Egalement j'ai vu revenir à plusieurs reprises l'instruction f = Dir(X & "*.xlsx"), je n'ai pas bien compris ce que cela renvoyait (pas réussi a la faire tourner).
Pourriez-vous m'indiquer mes erreurs ?
Partager