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:
Je me rend compte qu'il faut s’assurer également que:
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
- 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...
Tout aide est la bienvenue.
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
Merci !
Partager