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 :

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
Et sur le for each, j'ai l'erreur suivante :
Erreur 438, propriété ou méthode non gérée par cet objet.
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).
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 ?