Création dossiers imbriqués

bambi

XLDnaute Occasionnel
Bonjour à tous

A partir de noms dans un fichier excel, je tente de créer par macro 264 dossiers aux noms différents
Chaque dossiers contient 2 sous-dossiers tous identiques au nom de "Pommes" et "Poires"
Chaque sous-dossiers contient à son tour 2 sous-sous dossiers tous identiques au nom de "Prix" et "Quantité"

J'ai essayé d"adapter une macro trouvée ici
J'arrive à créer les 264 dossiers aux noms différents et les sous-dossiers Pommes et Poires à l’intérieur
Mais pas les sous-sous dossiers "Prix" et "Quantité" dans les dossiers Pommes et Poires

Merci de votre aide ;)

Code:
Sub CreationRepert()
    On Error Resume Next
    i = 1
    While Cells(i, 1).Value <> ""
        MkDir ActiveWorkbook.Path & "\" & Cells(i, 1).Value
        For j = 2 To 3
            MkDir ActiveWorkbook.Path & "\" & Cells(i, 1).Value & "\" & Cells(i, j).Value
        Next j
        For k = 4 To 5
            MkDir ActiveWorkbook.Path & "\" & Cells(i, 1).Value & "\" & Cells(i, j).Value & "\" & Cells(j, k).Value
        Next k
        i = i + 1
    Wend
End Sub
 
Dernière édition:
Solution
Re : Création dossiers imbriqués

Bonjour à tous
désolé, pour le zc! cette une fonction que j'utilise et que j'ai oublié de te fournir, mais sont résultat est, dans ton cas, la même chose
que la première ligne de cathodique
Set zone = Sheets("Feuil1").Range("A1").CurrentRegion

sousou

XLDnaute Barbatruc
Re : Création dossiers imbriqués

Bonjour
en utilisant l'objet filesystem
voila ce que tu peux faire:
Ici les données ont feuil1 colonne 1 et les répertoire sont créés dans le répertoire du fichier excel
Sub deb()
chemin = ThisWorkbook.Path
Set zone = zc(Sheets("feuil1"), 1, 1)

Set fso = CreateObject("scripting.filesystemobject")
For Each i In zone
Set rep = fso.createfolder(chemin & "/" & i.Value)

Set reppomme = fso.createfolder(rep.Path & "\pommes")
Set reppoire = fso.createfolder(rep.Path & "\poires")
fso.createfolder (reppomme.Path & "\prix")
fso.createfolder (reppomme.Path & "\quantités")
fso.createfolder (reppoire.Path & "\prix")
fso.createfolder (reppoire.Path & "\quantités")

Next

End Sub
 

bambi

XLDnaute Occasionnel
Re : Création dossiers imbriqués

Une image de l'erreur ;)


23-02-2016 20-16-08.png
 
Dernière édition:

bambi

XLDnaute Occasionnel
Re : Création dossiers imbriqués

je n'ai pas réussi à trouver l'erreur dans la macro de sousou :confused:

Je remet mon fichier avec en module 1, ma macro initiale du 1er message de cette file
Mais elle ne fonctionne pas pour les sous-sous dossiers

Et en module 2, la macro de sousou avec une erreur de compilation


Merci d'avance de votre aide :)
 

Pièces jointes

  • essai.xlsm
    23.2 KB · Affichages: 33
  • essai.xlsm
    23.2 KB · Affichages: 40

cathodique

XLDnaute Barbatruc
Re : Création dossiers imbriqués

Bonjour,

essaies ceci
VB:
Sub deb()

chemin = ThisWorkbook.Path

Set zone = Sheets("Feuil1").Range("A1").CurrentRegion
Set fso = CreateObject("scripting.filesystemobject")
For Each i In zone
On Error Resume Next
Set Rep = fso.createfolder(chemin & "/" & i.Value)

Set reppomme = fso.createfolder(Rep.Path & "\pommes")
Set reppoire = fso.createfolder(Rep.Path & "\poires")
fso.createfolder (reppomme.Path & "\prix")
fso.createfolder (reppomme.Path & "\quantités")
fso.createfolder (reppoire.Path & "\prix")
fso.createfolder (reppoire.Path & "\quantités")

Next

End Sub
Attention! avec ce code si les dossiers existent déjà, ils seront tous écrasées.
Je ne connais pas la méthode fso, j'ai simplement corrigé l'erreur de sousou.
 

sousou

XLDnaute Barbatruc
Re : Création dossiers imbriqués

Bonjour à tous
désolé, pour le zc! cette une fonction que j'utilise et que j'ai oublié de te fournir, mais sont résultat est, dans ton cas, la même chose
que la première ligne de cathodique
Set zone = Sheets("Feuil1").Range("A1").CurrentRegion
 

Discussions similaires

Statistiques des forums

Discussions
312 112
Messages
2 085 409
Membres
102 884
dernier inscrit
Macarena