Création automatique de dossiers à partir d'une liste dans Excel [Résolu/Fermé]

Messages postés
283
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2019
- - Dernière réponse :  Davide - 23 déc. 2015 à 10:07
Bonjour le forum,

Tout d'abord, je ne sais pas trop si ce post est à sa place sur le forum bureautique. N'hésitez pas à m'indiquer si je dois plutôt m'orienter vers le forum Windows ou encore Programmation.

Ma question est la suivante : est-il possible de créer automatiquement des dossiers à partir d'un fichier Excel qui comporte la liste des noms de dossiers dont je souhaite la création (un bon millier de dossiers) ?

Afficher la suite 

13 réponses

Meilleure réponse
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680
4
Merci
Bonjour verolyde,

Voici ton classeur avec la macro modifiée :

http://cjoint.com/?DGrju1v9iAj

Pour créer tes sous-répertoires j'ai utilisé une boucle qui permet de gérer plus facilement leur nombre.

Dire « Merci » 4

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 61043 internautes nous ont dit merci ce mois-ci

Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680
0
Merci
bonjour,

Il n'y a pas de formule qui permette de créer des dossiers mais avec une macro c'est assez simple.

Si tu pouvais nous mettre un exemple sans éléments personnels mais avec la structure des données sur http://cjoint.com/, puis nous mettre le lien généré ici ce serait plus facile.
Messages postés
283
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2019
6
0
Merci
Bonjour gbinforme (et merci pour ta réponse !),

Le fichier est dispo à cette adresse : http://cjoint.com/?3LjtfReZb2s

Je n'ai jamais utilisé de macro... mais ça me fera une expérience !
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680 -
Bonjour,

Donc tu voudrais créer autant de répertoires que tu as de noms dans ta liste ?

Ne serait-il pas plus judicieux de créer des sous répertoires par lettre ?

La macro te demande de choisir le répertoire parent puis te crées les répertoires.

Si c'est bien cela je te renvoie le classeur prêt à fonctionner.
Messages postés
283
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2019
6
0
Merci
Exactement, un répertoire pour chaque nom.

Je me chargerai par la suite de regrouper les répertoires par lettre dans un des 26 répertoires parents. Ca, je pourrai le faire manuellement sans problème.
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680
0
Merci
bonjour mike the llama,

Voila ton classeur (xlsm en raison de la macro) avec un bouton pour choisir ton répertoire et créer tes répertoires dans les 26 répertoires parents.

http://cjoint.com/?BLjw6JNx2pn

Il faut activer les macros (bouton sous le ruban) pour que cela fonctionne.
Messages postés
283
Date d'inscription
vendredi 14 septembre 2007
Statut
Membre
Dernière intervention
13 septembre 2019
6
0
Merci
Et bien, voilà une bonne dizaine d'heures de boulot répétitif de gagnées grâce à toi ! Deux clics et c'est réglé avec le fichier xlsm que tu as réalisé.

Merci beaucoup pour le temps que tu y as passé !

ps : pourrais-tu m'indiquer comment procéder pour regarder (si c'est possible) à quoi ressemble la macro en termes de programmation ? Histoire d'essayer de comprendre comment ça fonctionne sous le capot.
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680 -
Bonjour mike the llama,

C'est très simple pour voir la macro :
- Clic droit sur l'onglet "Feuil1"
- choisir avec clic gauche "Visualiser le code"

Cela t'ouvres l'éditeur de macros sur la procédure concernée.
Elle utilise une fonction système pour choisir le répertoire de base,
puis si répertoire choisis, elle crée les différents répertoires en fonction des lignes présentes.

Le bouton sur la feuille est associé à cette procédure.
Messages postés
2
Date d'inscription
lundi 10 décembre 2012
Statut
Membre
Dernière intervention
10 décembre 2012
0
Merci
Bonjour Gbinforme,

Impressionant !

Je viens enfin de tomber sur un sujet qui se rapproche de ce que je souhaite faire, alors je tente, peut etre que tu saura m'aider ?

J'ai une liste dans un fichier excel (une seule colonne), avec des noms de partenaires pour mon site.

De l'autre cote j'ai un fichier html tout simple (en gros une image au milieu et un peu de texte) et j'ai un lien partenaire sur l'image (exemple partnerid=partenaire1)

J'ai besoin de changer dans le code source, ca peux aussi etre un fichier txt que je peux modifier en html apres, le nom du partenaire pour chaque fichier, et le nom de chaque partenaire, est dans la liste de mon fichier excel.

J'aurai donc besoin que cela me cree un fichier html par ligne excel, avec le bon nom du fichier et le bon partnerid=partner1 ou partnerid=partenairexyz etc ...

Est-ce que tu penses que c'est faisable ? Ou bien est-ce que je dois regarder sur d'autres style de code ou directement dans des fenetres de commandes pour reussir ?

Merci de ton aide,
JP
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680 -
Bonjour,

Est-ce que tu penses que c'est faisable ?

Il n'y a pas grand chose d'impossible puisque "impossible n'est pas français !" depuis plus de 2 siècles.

Si tu pouvais nous mettre un exemple sans éléments personnels mais avec la structure HTML des données sur http://cjoint.com/, puis nous mettre le lien généré ici ce serait plus facile.

Plutôt que de générer autant de pages que de partenaires tu peux aussi le faire directement dans la page en javascript : à voir, selon ta page.
Messages postés
3
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
28 mai 2014
0
Merci
Bonjour gbinform,

j'ai le même besoin, pourrais-tu m'aider ?

J'ai besoin de créer des dossiers et sous dossiers.

Pour commencer, comment dois-je organiser ma feuille excel ?
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680 -
Bonjour AlbanR,

Voila ton classeur (xlsm en raison de la macro) avec un bouton pour choisir ton disque et ton répertoire de base et créer tes répertoires.

http://cjoint.com/?DEAsPYYbMUN

Il faut activer les macros (bouton sous le ruban) pour que cela fonctionne.
AlbanR
Messages postés
3
Date d'inscription
vendredi 23 mai 2014
Statut
Membre
Dernière intervention
28 mai 2014
-
Un grand merci ! C'est le top !

Je me débrouille plutôt pas mal en excel mais je n'y pige rien en Macro, que me conseilles-tu pour commencer ? (site/bouquin/logiciel) ?
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680 -
Bonjour AlbanR,

que me conseilles-tu : ce n'est jamais facile de commencer et chacun a sa propre logique. Je continue de penser que l'aide de base se trouve dans excel en étudiant les propriétés et les méthodes des objets mais je t'avoue qu'il faut rentrer dedans la logique ce qui n'est pas nécessairement facile. Ensuite l'on est à l'heure d'internet et lorsque l'on un peu intégré la base, l'on trouve les astuces qui manquent plus facilement avec l'aide des bénévoles.
Il y a aussi des bouquins effectivement mais il faut vérifier qu'ils correspondent à ta démarche car souvent le rédacteur privilégie sa propre logique qui n'est pas nécessairement la tienne.
Bon courage et à bientôt peut-être.
Bjr,
Je souhaites rajouter d'autres sous-répertoires, mais à chaque fois il me dit qu'il manque for.
Merci de tona ide !
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680 -
Bonjour verolyde,

S'il manque for c'est que tes modifications ne sont pas correctes : mets ton classeur avec tes modifications sur cjoint.com et le lien fourni ici pour que je puisse réparer ton problème.
0
Merci
Merci milles fois pour ton aide !

Bien cordialement

Vérolyde
0
Merci
Pourrais tu me dire, pour ma logique, où était le pb ?
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680 -
En fait en rajoutant tous tes tests, il manquait des "_" (prolongations de lignes) qui évitent des "end if" et venant après un for vba attends un next.
Messages postés
1
Date d'inscription
jeudi 9 octobre 2014
Statut
Membre
Dernière intervention
9 octobre 2014
0
Merci
Salut,
est ce que vous auriez la gentillesse de m'aider pour créer une macro capable de générer des dossiers à partir d'une liste de mots clés sous exel?

le principe est le suivant. J'ai fait une liste de 2000 mots clés, je souhaiterais que chaque ligne contenant un mot clés sur mon fichier exel se transforme en un dossier quelque part sur mon mac.
2eme étape, il faudrait en meme temps qu'une page web se génère à l'intérieur de chaque nouveau dossier. Elle serait nommée systématiquement "index.htm". De plus il faudrait que chaque page web ainsi généré contienne à l'intérieur un contenu identique à l'exception d'une variable (présente plusieurs fois sur la page) : le fameux mot clés du nom du dossier.

Si vous avez compris mon charabia, merci d'avance pour votre aide :))
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680 -
Bonjour romain06130,

Désolé mais la gestion des dossiers sur mac est complétement différente car les fonctions utilisables ne sont pas les mêmes : essaies de poser ta question dans le forum macos
0
Merci
Bonjour à tous,

Ma question est identique : je cherche à créer des répertoires à partir d'une liste sur tableur.
J'ai bien essayé de modifier la macro mais cela dépasse mes compétences !

J'ai déposé un extrait du fichier xls ici : http://www.cjoint.com/c/ELxiy0tAMuE
J'utilise Windows 7 pro et LibreOffice.

Je vous remercie de votre aide.
gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
3680 -
Bonjour,

Tu as la réponse dans ta question : la macro est faite en VBA pour excel et sur libreoffice les macros doivent être refaites car VBA est propriété de microsoft.
> gbinforme
Messages postés
15079
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
23 juin 2018
-
Dommage !
Je m'en doutais un peu, c'est pour cette raison que j'ai précisé le tableur utilisé...

Merci gbinforme.
-1
Merci
Bsr,

Merci de ta prompte réponse. J'ai mis le fichier sur cjoint.com

http://cjoint.com/data3/3GqvmPC168T_modeles_mal_maj_110714.xls

Ce que tu as fait plus haut est super. J'ai essayé de le modifier pour créer 11 sous répertoires, mais je n'ai pas réussi.

Merci vraiment de ton aide !
Verolyde
Voici la macro modifiée :

Option Explicit

Public Sub Créer_reps()
Dim lig As Long, rep As String, nbc(12)
Dim CHX As FileDialog ' selection Repertoire
Set CHX = Application.FileDialog(msoFileDialogFolderPicker)
CHX.Show
On Error Resume Next
rep = CHX.SelectedItems(1)
If Err.Number <> 0 Then Exit Sub
For lig = 11 To Cells(Rows.Count, 1).End(xlUp).Row
MkDir (rep & "\" & Cells(lig, 1).Value)
If Err.Number = 0 Then nbc(1) = nbc(1) + 1 Else Err.Clear

MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 2).Value)
If Err.Number = 0 Then nbc(2) = nbc(2) + 1 Else Err.Clear
If Cells(lig, 3).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 3).Value)
If Err.Number = 0 Then nbc(3) = nbc(3) + 1 Else Err.Clear
If Cells(lig, 4).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 4).Value)
If Err.Number = 0 Then nbc(4) = nbc(4) + 1 Else Err.Clear
If Cells(lig, 5).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 5).Value)
If Err.Number = 0 Then nbc(5) = nbc(5) + 1 Else Err.Clear
If Cells(lig, 6).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 6).Value)
If Err.Number = 0 Then nbc(6) = nbc(6) + 1 Else Err.Clear
If Cells(lig, 7).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 7).Value)
If Err.Number = 0 Then nbc(7) = nbc(7) + 1 Else Err.Clear
If Cells(lig, 8).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 8).Value)
If Err.Number = 0 Then nbc(8) = nbc(8) + 1 Else Err.Clear
If Cells(lig, 9).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 9).Value)
If Err.Number = 0 Then nbc(9) = nbc(9) + 1 Else Err.Clear
If Cells(lig, 10).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 10).Value)
If Err.Number = 0 Then nbc(10) = nbc(10) + 1 Else Err.Clear
If Cells(lig, 11).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 11).Value)
If Err.Number = 0 Then nbc(11) = nbc(11) + 1 Else Err.Clear
If Cells(lig, 12).Value <> "" Then
MkDir (rep & "\" & Cells(lig, 1).Value _
& "\" & Cells(lig, 12).Value)
If Err.Number = 0 Then nbc(12) = nbc(12) + 1 Else Err.Clear
End If
Next lig
MsgBox nbc(1) & " Dossiers créés" & vbLf _
& nbc(2) & " Sous-dossiers 1 créés" & vbLf _
& nbc(3) & " Sous-dossiers 2 créés" & vbLf _
& nbc(4) & " Sous-dossiers 3 créés" & vbLf _
& nbc(5) & " Sous-dossiers 4 créés" & vbLf _
& nbc(6) & " Sous-dossiers 5 créés" & vbLf _
& nbc(7) & " Sous-dossiers 6 créés" & vbLf _
& nbc(8) & " Sous-dossiers 7 créés" & vbLf _
& nbc(9) & " Sous-dossiers 8 créés" & vbLf _
& nbc(10) & " Sous-dossiers 9 créés" & vbLf _
& nbc(11) & " Sous-dossiers 10 créés" & vbLf _
& nbc(12) & " Sous-dossiers 11 créés"
End Sub