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 DestinationFilePathEn 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 SubCe 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 !