Microsoft 365 Créer un sous-dosser par Client

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

Je me tourne vers nos ténors pour la création de sous dossiers (1 par Client) et je ne vois pas vraiment comment automatiser en codage.

J'ai 2 dossiers pour les Clients :
- Factures qui contient environ 2000 factures,
- Relevés Situation Packs qui contient environ 3500 relevés,

Que ce soit les factures ou les relevés, le nom des fichiers commence toujours pas le nom du Client :
- Truc Sylvie 20210908 Votre Fact Achat Pack,
- Machin Jean-Luc - 18122017 Votre achat Pack Rest 14 RdV,
- Autre Danièle 12082016 2 100,

Pour une bien meilleure visibilité, j'aimerais les regrouper en sous-dossiers clients, c'est dire créer dans le dossier.
- Factures des sous-dossiers au nom de chaque client,
- Relevés des sous-dossiers au nom de chaque client,
ce qui donnerait, photo jointe :
1670517524265.png

Je pourrais le faire avec mes petites mains lol mais pour presque 6000 documents, je vais y passer le reste de ma vie.

Auriez-vous une solution = clic et youpi, c'est fait lol 🤣😇
Ce serait génial, mais est-ce possible ?
Merci déjà pour m'avoir lu...
:)
 
Dernière édition:
Solution
Bonjour Lionel, le forum,

Après avoir créé les sous-dossiers avec la macro du post #19 il est facile d'annuler l'opération en détruisant les sous-dossiers avec cette macro :
VB:
Sub Detruire_dossiers()
Dim chemin$, a, fso As Object, dossier, sf As Object, fichier As Object
chemin = ThisWorkbook.Path & "\"
a = Array("Factures", "Relevés Situation Packs")
Set fso = CreateObject("Scripting.FileSystemObject")
For Each dossier In a
    For Each sf In fso.GetFolder(chemin & dossier).SubFolders
        For Each fichier In sf.Files
            fso.MoveFile chemin & dossier & "\" & sf.Name & "\" & fichier.Name, chemin & dossier & "\" & fichier.Name
        Next fichier
        RmDir chemin & dossier & "\" & sf.Name 'supprime le sous-dossier
Next...

Bernard_XLD

XLDnaute Barbatruc
Membre du Staff
Bonjour Lionel, le forum

Bien sur que c'est possible mais il faudrait quelques précisions.
les types de fichiers à archiver, quelques fichiers exemples bidons, ce serait pas mal
l'emplacement des dossiers d'origine et de destination, disque dur local ou réseau, Onedrive simple ou partagé, sharepoint attaqué uniquement en réseau ou en drive partagé ?
copie ou déplacement des fichiers ?
Je déplace ta discussion dans le forum Excel.

Cordialement, @+
 

TooFatBoy

XLDnaute Barbatruc
Bonjour,

C'est vraiment une très mauvaise idée.
Il serait plus judicieux de normaliser tes noms de fichiers, à mon avis.

Question tout de même...
Tu n'as vraiment que ces 3 formats de noms ???
Nom prénom aaaammjj Votre Fact Achat xxx
Nom
prénom - jjmmaaaa Votre achat Pack xxx
Nom
prénom jjmmaaaa xxxx
 
Dernière édition:

Laurent78

XLDnaute Occasionnel
Bonjour à Tous,

Je viens de relire plusieurs fois la question de départ, et j'ai bien l'impression que ce n'est pas un problème Excel. De plus, il semblerait qu'il s'agisse juste d'une opération One shot, non répétitive, à faire une seule fois.

Peut-être qu'un "simple" batch peut faire l'affaire (for, md, mov, robocopy, ...)

On verra les précisions de ce soir.
Bonne journée
 

patricktoulon

XLDnaute Barbatruc
bonjour
ce serait très simple a faire en fait
mais a quoi servirait de faire un sous dossier nomclient dans dossier_facture pour y mettre la facture
et un autre sous dossier dans dossier_relevé.... pour y mettre le fichier achat ou relevé ou je ne sais quoi

si tu me dis je fait un sous dossier nom de client avec dedans le fichier facture et le fichier achat là oui je comprendrais

sans ça tu ne fait que complexifier l’accès par vba au fichier
 

patricktoulon

XLDnaute Barbatruc
re
si tu veux ok mais je relève déjà un soucis conceptuel
qui remonte a la création des fichier
dans ton énoncé tu dis comme exemple
- Truc Sylvie 20210908 Votre Fact Achat Pack,
- Machin Jean-Luc - 18122017 Votre achat Pack Rest 14 RdV,
- Autre Danièle 12082016 2 100,
hors dans une boucle sur fichier pour récupérer le nomprenom daniel et sylvie ça ira mais jean luc on va avoir un problème avec le tiret tout du moins il faudra trifouiller le string pour éliminer le tiret avant la date
et je suppose que l'on va trouver encore d'autres trucs du genre dans le nommage de tes fichiers
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
re
si tu veux ok mais je relève déjà un soucis conceptuel
qui remonte a la création des fichier
dans ton énoncé tu dis comme exemple

hors dans une boucle sur fichier pour récupérer le nomprenom daniel et sylvie ça ira mais jean luc on va avoir un problème avec le tiret tout du moins il faudra trifouiller le string pour éliminer le tiret avant la date
et je suppose que l'on va trouver encore d'autres trucs du genre dans le nommage de tes fichiers
Judicieuse remarque :)
Il faudra d'abord que je renomme mes fichiers pour qu'ils soient cohérents.
J'y ai pensé, c'est pour cela que je mettrai au point ce soir.
:)
 

mapomme

XLDnaute Barbatruc
Supporter XLD
hors dans une boucle sur fichier pour récupérer le nomprenom daniel et sylvie ça ira mais jean luc on va avoir un problème avec le tiret tout du moins il faudra trifouiller le string pour éliminer le tiret avant la date
et je suppose que l'on va trouver encore d'autres trucs du genre dans le nommage de tes fichiers
Pour tous vous saluer :),
@patricktoulon

Trouver le nom et le prénom, c'est relativement facile (ça s'arrête à priori avant le premier chiffre), on ôte tout ce qui n'est pas lettre, on ôte les accents, on supprime les doubles espaces, etc.
Mais comme tu dis, on est pratiquement certain d'avoir du plus étrange o_O (comme des inversions nom et prénom ou autres) mais ça peut se tenter...