1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| Sub lister_images_jpeg()
Dim debut As String
Dim fin As String
Dim debut_num As Long
Dim fin_num As Long
Dim i As Long, j As Long
Dim resultat As String
Dim liste_noms() As String
' Récupérer la dernière ligne de la feuille active
Dim last_row As Long
last_row = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
' Boucler sur chaque ligne à partir de la deuxième
For i = 2 To last_row
' Récupérer les noms de fichier de début et de fin
debut = ActiveSheet.Cells(i, 1).Value
fin = ActiveSheet.Cells(i, 2).Value
' Extraire les numéros de séquence de début et de fin
debut_num = CLng(Mid(debut, InStrRev(debut, "_") + 1, 4))
fin_num = CLng(Mid(fin, InStrRev(fin, "_") + 1, 4))
' Générer la liste des noms de fichier
ReDim liste_noms(debut_num To fin_num)
liste_noms(debut_num) = debut & "#"
For j = debut_num + 1 To fin_num - 1
liste_noms(j) = Left(debut, InStrRev(debut, "_")) & Format(j, "0000") & ".jpg#"
Next j
liste_noms(fin_num) = fin & "#"
' Concaténer la liste des noms de fichier avec un retour à la ligne
resultat = Join(liste_noms, vbCrLf)
' Écrire le résultat dans la troisième colonne et formater la cellule
With ActiveSheet.Cells(i, 3)
.Value = resultat
.WrapText = True
.Rows.AutoFit
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.ColumnWidth = Len(resultat) / (fin_num - debut_num + 1) + 3
End With
' Formater les cellules A et B pour les centrer sur la hauteur
With ActiveSheet.Cells(i, 1)
.VerticalAlignment = xlCenter
End With
With ActiveSheet.Cells(i, 2)
.VerticalAlignment = xlCenter
End With
Next i
End Sub |
Partager