[Calc] Créer des dossiers automatiquement sur un lecteur réseau ou USB

Ce billet est la suite logique de l’article de  2014 Générer automatiquement des dossiers sur un lecteur avec Excel qui abordait une méthode permettant de générer automatiquement des sous-dossiers stockés dans un dossier principal.

Mon besoin à cet époque était de créer des dossiers individuels aux noms d’étudiants (un grosse centaine) à partir d’une liste de noms.

Nous sommes en environnement Windows mais cette fois avec OpenOffice Calc (ça marche aussi avec LibreOffice), et le dossier sera généré sur un lecteur réseau ou une clé USB ou un disque interne. Cette macro Calc publiée dans ce forum en 2008 demeure d’actualité.

Comment procéder :

Créer un nouveau document Calc et dans Outil/Options, abaisser à Moyen la sécurité des macros.

Dans l’éditeur de macros :

2017-03-31_09h53_42

Puis dans le nom correspond au dossier, puis Module1

2017-03-31_09h55_52

La macro à copier-coller :

Option Explicit
Sub CreerDosssier ()
Dim monDocu As Object, lesFeuils As Object
Dim maFeuil As object
Dim maCell As Object
Dim x As long, z As String
Dim Chemin as String
monDocu = ThisComponent
lesFeuils = monDocu.Sheets
maFeuil = lesFeuils.getByName("Feuille1")
x = 1
maCell = maFeuil.getCellRangeByName("A"& x)
z = maCell.String
Do Until z = ""
Chemin = MkDir (ConvertToUrl ("E:\TEST\"&z))
x = x + 1
maCell = maFeuil.getCellRangeByName("A"& x)
z = maCell.String
Loop
End Sub

Paramètres à modifier :
– le nom de la feuille si vous avez renommé Feuille1
– le lecteur et le nom du dossier “E:\TEST\

Pour lancer  la macro :

Outil/Macros/Exécuter la macro puis sélectionner la macro dans la liste et Exécuter :

2017-03-31_10h06_39

Pour automatiser l’exécution, on peut créer une nouvelle barre d’outil avec un bouton assigné à la macro :

2017-03-31_10h09_28

Bouton avec une icône de circonstance :

2017-03-31_10h09_45

2017-03-31_10h16_44

Prochaine étape, vous proposer une version de la macro sous Linux, petits veinards…

Source

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *