![]() |
Bienvenue invité ( Connexion | Inscription )
![]() |
![]()
Message
#1
|
|
Nouveau Membre Groupe : Membres Messages : 14 Inscrit : 22 Mar 2021 Membre no 213 706 ![]() |
Bonjour à tous,
Je m'adresse à vous pour trouver une solution afin de renommer en masse des dossiers depuis une liste excel sur mac. J'ai trouvé une solution depuis le web anglophone : https://www.howtoexcel.org/vba/how-to-creat...rs-from-a-list/ mais autant j'arrive à la faire fonctionner sur windows, autant impossible d'exécuter la commande avec un chemin du finder mac os. Auriez-vous des idées ou adaptation de Visual Basic à apporter ? P.S. : Je suis une bille en script/terminal/code (mais ça ne me fait pas peur d'essayer). Merci d'avance de vos réponses, Bartaba. Config : MAC OS Mojave (10.14.6) iMac (21.5-inch, Late 2015) 2,8 GHz Intel Core i5 Excel pour Mac version 16.46 |
|
|
![]() |
![]()
Message
#2
|
|
Macbidouilleur de bronze ! ![]() ![]() Groupe : Membres Messages : 266 Inscrit : 7 Dec 2013 Lieu : Ile de France Membre no 188 169 ![]() |
Bonjour,
Le script ci-dessous fait ce que tu demandes. Dans le cas où des nouveaux noms de dossiers existent déjà, les dossiers ne sont pas changés, mais le script indique le nombre d'erreurs et les noms en erreur sont dans le presse papier. Code set ExcelFile to choose file with prompt "Selectionner le fichier Excel" of type {"XLSX"} tell application "Microsoft Excel" -- Le fichier contient une colonne A avec le nom de dossier actuel et une colonne B avec le nouveau nom open ExcelFile tell active sheet to set maListe to value of used range close window 1 -- MaListe est une liste de lignes (row) avec 2 valeurs, ancien et nouveau end tell set DossierParent to choose folder with prompt "Sélectionner le dossier contenant les dossiers à renommmer" set ListeErreur to {} repeat with Ligne in maListe -- boucle sur les lignes Excel -- cherche dossier avec le nom item 1 of Ligne -- remplace le dossier avec le nom item 2 of ligne tell application "Finder" set Dossier to (every folder of folder DossierParent whose name is (item 1 of Ligne)) if (count of Dossier) = 1 then -- trouvé un dossier de ce nom try set name of (first item of Dossier) to item 2 of Ligne on error log "erreur" set end of ListeErreur to item 1 of Ligne end try log "c=" & (count of ListeErreur) end if end tell end repeat -- Ligne suivante if (count of ListeErreur) > 0 then display alert "Le script a rencontré " & (count of ListeErreur) & " erreur(s)." & return & "Voir dans le presse papier." set AppleScript's text item delimiters to "," set the clipboard to items 1 thru -1 of ListeErreur as text else display alert "Le script s'est éxécuté sans erreur." end if Pour tester, un dossier parent avec des sous dossier et un fichier Excel avec les colonnes A et B comme indiquées précédemment. Le script demande de sélectionner le fichier Excel, puis le dossier parent. Le fichier Excel s'ouvre et se ferme rapidement, juste le temps de lire les 2 colonnes. Cordialement -------------------- iiMac 24 M1 16Go/1To 13.5.1
iMac 27 i5 3,1GHz 8Go/1To 10.11.6 / 10.6.8 iMac 20 C.Duo 2,6Ghz 8Go/350Go 10.6.8 / 10.11 Mini C.Duo 2,0Ghz 2Go/500Go 10.6.8 |
|
|
![]() ![]() |
Nous sommes le : 2nd August 2025 - 01:05 |