Création de sous dossier à partir d'une macro existante

Bonjour,

je souhaiterais avoir un peu d'aide sur une macro que j'utilise sous office 365

cette macro est basée sur un tableau excel, elle me permet de générer automatiquement des dossiers portant le nom de la cellule correspondante.

je souhaiterais pouvoir générer des sous dossiers à l'intérieur de ce dossier nouvellement créé mais c'est la que je bloque.

Sub Creer_Dossiers()
On Error Resume Next
Dim ligne As Integer
ChDir "C:\Users\xxxx\OneDrive\test\Projets\En cours\"
For ligne = 1 To 300
MkDir Sheets("Feuil1").Cells(ligne, 1).Value

'MkDir ("C:\Users\xxxx\OneDrive\test\Projets\En cours\01 - XXX")
'MkDir ("C:\Users\xxxx\OneDrive\test\Projets\En cours\02 - XXX")
Next ligne
End Sub

j'ai volontairement désactivé la ligne "APD" car le dossier est créé à la racine principale et non dans mon dossier final

je cherche encore le bon code à mettre

Merci pour votre aide

Bonjour

Cela manque de précisions....

le dossier de départ est C:\Users\xxxx\OneDrive\test\Projets\En cours\

dans ce dossier tu veux créer 300 dossiers dont les noms sont en colonne A... OK.....

Pour la création de sous dossier comment le savoir ?? prenons un exemple le premier dossier créer ligne 1 de la colonne A, doit maintenant avoir des sous dossiers.. avec quel nom ?? toujours le/les même(s) ou variable et dans ce cas où trouver le nom ?

Fred

Bonjour et merci pour le retour

Pour la création de sous dossier comment le savoir ?? prenons un exemple le premier dossier créer ligne 1 de la colonne A, doit maintenant avoir des sous dossiers.. avec quel nom ?? toujours le/les même(s) ou variable et dans ce cas où trouver le nom ?

Concrètement, en effet la macro génère le dossier depuis la ligne correspondante de mon tableau excel

avec un exemple c'est plus compréhensible en effet

P001 - Dossier test
> 01 - Nom1
> 02 - Nom2
> 03 - Nom3

P002 - Dossier test
> 01 - Nom1
> 02 - Nom2
> 03 - Nom3

etc

tous mes sous-dossiers porteront les mêmes noms

donc ma problématique est bien de faire comprendre à la macro que je dois (après avoir créer mon dossier P001) créer X sous dossiers dedans

puis continuer sur la ligne en dessous

Bonjour

ci joint une proposition... j'ai mis dans la colonne B le nom des sous dossiers a créer plutôt que les mettre en dur dans le code...

pour le moment la création des dossiers se font à l'emplacement où se trouve ce fichier.. mais on peut adapter dans le code... j'ai laisser exprès ta ligne initiale..

Fred

57cfrancky77.xlsm (17.14 Ko)

Merci beaucoup

la macro fonctionne bien

j'ai reussi à la transposer sur mon fichier

j'ai encore un bug et un message d'erreur

image
        If Dir(chemin & sh.Cells(ligne, 1).Value & "\" & TbSd(j, 1), vbDirectory) = "" Then MkDir chemin & sh.Cells(ligne, 1).Value & "\" & TbSd(j, 1)

sur le Mkdir,

j'en ai corrigé d'autres avec des caractères spéciaux dans le texte de cellule, mais la je bloque un peu

reste à modifier la ligne pour que les dossiers se placent au bon endroit

Place cette ligne de code avant la ligne qui pose problème...

Debug.Print chemin & sh.Cells(ligne, 1).Value & "\" & TbSd(j, 1)

et fait un retour de ce qu'il y a dans la fenêtre exécution de l’éditeur VBA

tu devrais avoir quelque chose comme :

excelpratique

Fred

tu aurais pas mis par hasard dans les noms des sous dossier une date ??? au format 13/08/2020 par exemple ???

Fred

non j'ai fait attention au date et autre chose bizarre :D

je pense avoir trouvé, j'avais un petit point sur une ligne qui semblait posé problème

je relance avec le débug

et j'obtiens cela

C:\Users\xxx\Documents\VDR\P276 - Vélizy - A86 FUP\
C:\Users\xxx\Documents\VDR\P278 - LINEO 11 sur les communes de Cugnaux \00 - Etude

En fait il bug quand j'ai des espaces à la fin du dernier caractère

je corrige cela dans mon tableau

on peut aussi en tenir compte dans le code... très simple avec la fonction TRIM

demande si besoin

Fred

j'ai modifié toutes mes lignes et tout est généré désormais, mais je suis preneur pour cette correction automatique

on partirait sur ce genre de code ?

        Cells(counter, column).Value = RTrim(Cells(counter, column).Value) 'supprime chaque espace superflue à droite

pour qu'il puisse générer au bon endroit, je suppose que je dois marquer cette ligne ?

chemin = ThisWorkbook.Path & "\"

Nouvelle version du fichier (et donc du code) avec la gestion des espaces superflux

Edit: suppression du fichier

Pour le bon chemin

mettre en commentaire

chemin = ThisWorkbook.Path & "\"

et bien compléter avec tout ce qui va bien...

chemin = "C:\Users\xxxx\OneDrive\test\Projets\En cours\"

Fred

je pense qu'il y a une erreur sur le fichier :D

pour le reste c'est corrigé

Oui effectivement....

c'est le problème d'être sur plusieurs post à la fois...

29cfrancky77.xlsm (18.03 Ko)

ci joint le bon fichier

Fred

j'ai tout relancé et franchement c'est top

un grand merci pour votre aide et le temps passé pour ma demande

j'aurais un ajout de fonction (je voudrais scanner un autre dossier pour voir si le dossier est présent également) mais cela viendra plus tard

dans le cas ou je voudrais déplacer un dossier P00x vers une catégorie ou une autre.

Par exemple :

En cours

P001

Finalisé

le Déplacement de dossier ne pose pas de problème si aucun fichier le contenant n'est ouvert...

ouvre un nouveau post quand tu en seras là... et approfondi l'explication du comportement souhaiter (car là c'est pas encore très clair pour moi... )

n'oublie pas

Fred

Un merci pour l'aide

je vais créer un nouveau sujet dans ce cas

Rechercher des sujets similaires à "creation dossier partir macro existante"