Bonjour à tous,

Je cherche a créer une macro qui me permette d'automatiser la création de dossier / sous dossier, etc... puis de déplacer un document dans ce nouveau dossier.

J'ai mes documents dans un dossier C:\Test\
Et j'ai dans un fichier xls, 4-5 colonnes avec pour les 4 premières des noms de dossier, sous dossier et sous sous dossier, et dans la 5ème le nom de document
Les premières cases sont des noms d'entitées et la 5ème le nom du document PDF

En gros, il faudrait que la macro fasse:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
For i to Line 
If  
Ai & "\" & Bi & "\" & Ci & "\" 
Exist then 
Move Di to Ai & "\" & Bi & "\" & Ci & "\" 
 
Else Then  
MKDir Ai & "/" & Bi & "/" & Ci & "/" 
Move Di to Ai & "/" & Bi & "/" & Ci & "/" 
 
End if 
Next
Je me rend compte qu'il faut s’assurer également que:

- Si le dossier existe, il faut passer au sous dossier suivant;
par exemple si j'ai créé EG / COM / TF / aga.pdf
et que je me retrouve sur la ligne EG / COM / GE / areu.pdf
il faut que le programme reconnaisse que les deux premiers niveaux existent mais créée le dossier GE au niveau 3...

- des dossiers de niveau 2 ou 3 peuvent ne pas exister, qu'il faut donc passer au suivant;
par exemple, je peux le retrouver avec une ligne type EG / "vide " / DES / Aplouf.pdf

J'ai commencé par la base, j'ai une idée de comment l'écrire et quoi utiliser, mais je suis rapidement perdu...

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
Sub create()
    Dim NouveauChemin As String
    Dim Origine As String
    Dim Ligne As Integer, i As Integer
 
    Ligne = ActiveSheet.UsedRange.Rows.Count
    Origine = Application.InputBox(Prompt:="Where are files ?" )
    Origine = Origine + "\"
    NouveauChemin = Application.InputBox(Prompt:="where to create foldertree" )
    NouveauChemin = NouveauChemin + "\"
 
    For i = 2 To Ligne
        MkDir NouveauChemin & Cells(i, 1) & Cells(i, 2) & Cells(i, 3) & Cells(i, 4)
        Filecopy "C:\PDF\" & Cells(i, 5)", "C:\Arbo\ & nouveauchemin &"\"& Cells(i, 5)"
 
  Next
End Sub
Tout aide est la bienvenue.

Merci !