Sub Liste_Fichier()
Dim FSO As Scripting.FileSystemObject
Dim Rep As Scripting.Folder
Dim Fich As Scripting.File
Dim Pos As Integer
Dim Fournisseur
Dim Temp
On Error GoTo Fin
Set FSO = New Scripting.FileSystemObject
Set Rep = FSO.GetFolder(ThisWorkbook.Path & "\Photos")
Set Fournisseur = CreateObject("Scripting.Dictionary")
Range("A2:B" & Range("A65536").End(xlUp).Row + 1).Clear
For Each Fich In Rep.Files
Pos = InStr(1, Fich.Name, "_")
If Not Fournisseur.Exists(Left(Fich.Name, Pos - 1)) Then
Fournisseur.Add Left(Fich.Name, Pos - 1), 1
Else
Temp = Fournisseur.Item(Left(Fich.Name, Pos - 1))
Fournisseur.Remove (Left(Fich.Name, Pos - 1))
Fournisseur.Add Left(Fich.Name, Pos - 1), Temp + 1
End If
Next
Range("A2").Resize(Fournisseur.Count, 1) = Application.Transpose(Fournisseur.Keys)
Range("B2").Resize(Fournisseur.Count, 1) = Application.Transpose(Fournisseur.Items)
Set FSO = Nothing
Set Rep = Nothing
Set Fournisseur = Nothing
Exit Sub
Fin:
MsgBox "Une erreur s'est produite, vérifier :" & vbCrLf & _
"- le nom des fichiers" & vbCrLf & _
"- le nom des répertoires" & vbCrLf & _
"- .../...", vbCritical, "Erreur"
Set FSO = Nothing
Set Rep = Nothing
Set Fournisseur = Nothing
End Sub