Renommer des photos d'après un fichier excel sous mac

@Pickis
Bonjour,
Si le problème n'est toujours pas résolu...
Peux-tu nous dire ce que contiennent les cellules du fichiers excel. J'ai cru comprendre (à confirmer) : Nom en colonne A, Prenom en colonne B, Le nom du dossier qui contient l'image en colonne C. ?
Tous les dossiers images sont dans un dossier (trombi) ?
Les images dans le dossier sont dans l'ordre de la liste excel. ?
Chaque dossier image d'une classe ne contient que des images et en nombre égal à la liste d' excel ?

Il faut renommer les fichiers image existant ou les copier-coller ailleurs en les renommant ?

Avec confirmation de ces données on peut envisager un petit applescript.
 
Nom;prénom;classe

La classe correspondant aussi au sous-dossier contenant les images. Par contre, aucune relation entre le nom de l’image et le nom/prénom de l’élève... Donc on se base sur l’ordre alphabétique.

J’ai un léger doute sur le contenu du répertoire, peut-être des fichiers parasites (d’où mes dernières modifications).

Perso, je les renomme dans le dossier. Mais effectivement les copier ailleurs est sans doute préférable par sécurité.

A voir si ma dernière version du script shell a résolu les derniers soucis ou non
 
Coucou ecatomb
Ok donc ma déduction à l'air correcte. J'attends donc la réponse de Pickis pour savoir si il à réussi avec ton script, sinon je lui ferais un petit applescript, si ça l'intéresse.
 
Donc petite avancé j'ai 2 images qui sont bien renommés dans la classe de 6°B. Pour la 6°A par contre non. Voici le résultats de ton fichier Log.Capture d’écran 2019-01-24 à 21.05.35.png
 
Tu dois avoir un problème avec tes fichiers... Sinon ils seraient listés...

Va dans le répertoire 6°A via le terminal et teste les deux commandes :
ls
ls *.jpg

Affichent-elles les mêmes fichiers jpg ?
 
Tu dois avoir un problème avec tes fichiers... Sinon ils seraient listés...

Va dans le répertoire 6°A via le terminal et teste les deux commandes :
ls
ls *.jpg

Affichent-elles les mêmes fichiers jpg ?
Alors le répertoire 6°A il veut pas me le trouver via le terminale par contre celui de la 6°B oui.
 
Donc le problème vient du nom du répertoire 6°A ... Il doit y avoir quelque chose qui cloche (droits ou autre).
Je donne ma langue au chat
 
@ Pickis Bonjour,
Je peux tu proposer un applescript qui te demande de choisir le fichier EXCEL contenant la liste des noms, puis de choisir le dossier contenant les dossiers images.
Ce script vérifie que le nombre de nom par classe dans le script correspond au nombre de fichiers images dans le dossier correspondant s'il existe, si oui il renomme sinon il crée un fichier erreurs.txt sur le bureau mentionnant l'erreur trouvé (une erreur par ligne).
Tiens moi au courant.

Bloc de code:
tell application "Finder"
    set laliste to choose file with prompt "Sélectionnez le fichier liste"
    set chemin to laliste as string
    set votreChoix to choose folder with prompt "Sélectionnez le dossier Images"
    set votreChoix to votreChoix as string
end tell


tell application "Numbers" --Ouvre le fichier dans Numbers et compte les lignes
    open file chemin
  
    tell table 1 of sheet 1 of front document --"fichierxlsx"
        set lignedeb to 2
        set dern to row count
      
        repeat -- boucle si le dossier image est le même
            set i to lignedeb
            set lig to i as string
            set lacel to "c" & lig
            set ledossier to value of cell lacel as string
          
            repeat
                set i to i + 1
                if i > dern then
                    exit repeat
                end if
                set lig to i as string
                set lacel to "c" & lig
                set ledossier2 to value of cell lacel
              
                if ledossier2 = ledossier then
                else
                    exit repeat
                end if
            end repeat
            set nb to i - lignedeb
            set nombre to nb as string
            tell application "Finder" --recupère le nom dossier, les nom associés et la liste d'image
                set ledossierim to votreChoix & ledossier
              
              
                if exists ledossierim then
                    set liste_Fichiers to files of folder (ledossierim as alias)
                    set nbf to count liste_Fichiers
                  
                    set nnb to nb as string
                    set nnbf to nbf as string
                else
                    set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
                    write "le dossier image " & ledossier & "  n'existe pas" & return to lelog starting at eof
                    close access lelog
                    set nbf to 0
                end if
              
              
            end tell
            if nb = nbf then
                set laligne to lignedeb as string
                set lefich to 1
                repeat nb times
                    set lacellule to "a" & laligne
                    set lenom to value of cell lacellule as string
                    set lacellule to "B" & laligne
                    set leprenom to value of cell lacellule as string
                    set arenom to item lefich of liste_Fichiers
                    set arenom to arenom as string
                    tell application "Finder"
                        set le1 to item lefich of liste_Fichiers
                        set lextension to name extension of le1
                      
                        set name of file arenom to lenom & "_" & leprenom & "_" & ledossier & "." & lextension
                        set laligne to laligne + 1
                        set lefich to lefich + 1
                    end tell
                end repeat
            else
                -- Ecrit un fichier erreur sur le bureau si nombre d'image différent du nombre de nom dans la liste
                set lelog to open for access ((path to desktop folder as text) & "les erreurs.txt") as text with write permission
                write "Le fichier Excel contient " & nb & " Nom et le dossier image " & ledossier & "  " & nbf & " fichiers" & return to lelog starting at eof
                close access lelog
            end if
            set lignedeb to i
            if lignedeb ≥ dern then
                exit repeat
            end if
          
        end repeat
      
    end tell
  
end tell
tell application "Numbers"
    quit
end tell
tell application "Finder"
    (display dialog ("waouou ... Ca y est c'est fait !") buttons {"Salut !"})
end tell
 
Bonjour, désolé pour cette absence.
Je reviens vers toi Zeltron54 concernant l'applescript.
Peut tu me dire la démarche a suivre pour installé ton code.
Merci.
Et surtout encore un grand merci a Ecatomb, qui a vraiment pris du temps pour moi.
Merci a vous tous.
 
Bonjour,
Tu ouvres l'application Editeur de script qui est dans application=>utilitaires
Dans la fenêtre qui s'ouvre tu fais un copier, coller du script ci-dessus.
Tu cliques sur exécuter, un fenêtre s'ouvre te demandant de choisir le fichier de la liste (fichier excel), après validation une autre fenêtre s'ouvre te demandant de choisir le dossier des images.

Le script ouvre le fichier excel avec numbers, vérifie si le nombre de nom dans une classe est le même que le nombre de fichiers dans le dossier de cette classe, si oui renomme, si non il crée un fichier texte erreurs sur le bureau.
Lorsqu'il a terminé il te met un message de fin.

PS: Il est bien sur conseiller de travailler avec une copie du dossier des images afin d'éviter tous problèmes.