Création automatique de dossiers à partir d'une liste dans Excel
Résolu
mike the llama
Messages postés
361
Statut
Membre
-
Davide -
Davide -
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) ?
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) ?
13 réponses
-
Bonjour verolyde,
Voici ton classeur avec la macro modifiée :
https://www.cjoint.com/?DGrju1v9iAj
Pour créer tes sous-répertoires j'ai utilisé une boucle qui permet de gérer plus facilement leur nombre. -
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.
https://www.cjoint.com/?BLjw6JNx2pn
Il faut activer les macros (bouton sous le ruban) pour que cela fonctionne. -
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.-
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.
-
-
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 https://www.cjoint.com/ puis nous mettre le lien généré ici ce serait plus facile. -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour gbinforme (et merci pour ta réponse !),
Le fichier est dispo à cette adresse : https://www.cjoint.com/?3LjtfReZb2s
Je n'ai jamais utilisé de macro... mais ça me fera une expérience !-
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.
-
-
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. -
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-
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 https://www.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.
-
-
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 ?-
Bonjour AlbanR,
comment dois-je organiser ma feuille excel ?
Tu as un exemple dans le classeur ci-dessus mais l'on peut partir de ton organisation.
Si tu pouvais nous mettre un exemple de structure des données, sans éléments personnels, avec les résultats souhaités expliqués clairement, se serait plus facile de t'aider.
Pour communiquer ton classeur tu le télécharges sur https://www.cjoint.com/ et tu mets ici le lien obtenu. -
-
Bonjour,
désolé pour ma réponse tardive...
Voici mon fichier dans lequel tu trouveras en col. A les dossiers et en col. B et c les sous dossiers associés.
https://www.cjoint.com/?DEAoaJSLQQL -
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.
https://www.cjoint.com/c/DEAsPYYbMUN
Il faut activer les macros (bouton sous le ruban) pour que cela fonctionne. -
-
-
-
-
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 :))-
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
-
-
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. -
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
-