Classement photos automatique

Bonjour !

Je cherche à classer automatiquement des photos dans différents dossiers.

J'ai un tableur Excel avec sur une première colonne mon nom de dossier, et sur une seconde colonne le nombre de photos à y affecter. Je dois ranger les photos par ordre chronologique (ex photos 1 à 6 dans dossier A, puis photos 7 à 19 dans dossier B, etc.)

J'ai réussi, avec VBA, à créer automatiquement mes dossiers avec leurs noms respectifs. Mais pour y ranger les photos, c'est plus compliqué ! Est-ce que vous savez si c'est faisable et auriez des pistes pour m'aider ?

Vous remerciant par avance,

Bonne journée

Bonjour,

Un exemple de comment cela pourrait être accompli. Voici une méthode de base pour déplacer un fichier

Name SourceFilePath As DestinationFilePath

En supposant que vos photos soient nommées séquentiellement (par exemple, "photo1.jpg", "photo2.jpg", etc.) et qu'elles se trouvent toutes dans un dossier spécifique avant d'être déplacées, vous pouvez mettre en place quelque chose comme ceci :

Sub MoveFiles()

    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")  ' Changez "Sheet1" par le nom de votre feuille si nécessaire

    Dim SourceFolder As String
    SourceFolder = "C:\Photos\"  ' Mettez ici le chemin de votre dossier source

    Dim DestinationFolder As String
    DestinationFolder = "C:\Destination\"  ' Mettez ici le chemin de votre dossier destination

    Dim PhotoNumber As Integer
    PhotoNumber = 1  ' On commence à la photo 1

    Dim i As Integer
    For i = 2 To ws.Cells(ws.Rows.Count, "A").End(xlUp).Row  ' On commence à la ligne 2 et on parcourt toutes les lignes

        Dim FolderName As String
        FolderName = ws.Cells(i, 1).Value  ' Nom du dossier

        Dim PhotosToMove As Integer
        PhotosToMove = ws.Cells(i, 2).Value  ' Nombre de photos à déplacer

        Dim j As Integer
        For j = PhotoNumber To PhotoNumber + PhotosToMove - 1

            Dim SourcePath As String
            SourcePath = SourceFolder & "photo" & j & ".jpg"  ' Chemin de la photo à déplacer

            Dim DestinationPath As String
            DestinationPath = DestinationFolder & FolderName & "\photo" & j & ".jpg"  ' Chemin où déplacer la photo

            Name SourcePath As DestinationPath

        Next j

        PhotoNumber = PhotoNumber + PhotosToMove  ' On met à jour le numéro de la prochaine photo à déplacer

    Next i

End Sub

Ce code suppose que vos photos sont au format ".jpg". Si elles sont dans un autre format, veuillez modifier cette partie du code en conséquence.
Je tiens à préciser que cette solution est basique et qu'elle ne gère pas les erreurs. Par exemple, elle échouera si un fichier n'existe pas ou si un dossier de destination n'existe pas (même si vous avez dit que vous les avez déjà créés). J'espère que cela vous aidera !

Rechercher des sujets similaires à "classement photos automatique"