Public o As Object 'déclare la variable o (Onglet)
Public nl As Long 'déclare la variable nl
Sub Macro1()
Dim sf As Variant 'déclare la variable sf (Système de Fichiers)
Dim d As Variant 'déclare la variable d (Dossier)
Dim fs As Variant 'déclare la variable fs (Fichiers)
Dim f As Variant 'déclare la variable f (Fichier)
Dim nf As String 'déclare la variable nf (Nom du Fichier)
Dim ext As String 'déclare la variable ext (EXTension du Fichier)
Dim dc As String 'déclare la variable dc (Deux derniers Caractères du nom)
Dim dest As Range 'déclare la variable dest (cellule de DESTination)
Dim a As String 'déclare la variable a (Année)
Dim m As String 'déclare la variable m (Mois)
Dim j As String 'déclare la variable j (Jour)
Set sf = CreateObject("Scripting.FileSystemObject") 'définit la variable sf
Set d = sf.GetFolder("G:\1.6_Exploitation\Suivi budgétaire\Devis_reçus") 'définit le dossier d
'Set d = sf.GetFolder("C:\Test")
Set fs = d.Files 'définit l'ensemble des fichiers fs
'si le nombre de fichiers du dossier d est inférieur ou égal au nombre de ligne nl, sort de la procédure
'mise à jour automatique à l'ouverture du fichier (voir le code du composant ThisworkBook)
If fs.Count <= nl Then Exit Sub
For Each f In fs 'boucle sur tous les fichiers du dossier d
nf = Left(f.Name, Len(f.Name) - 4) 'définit la nom du fichier (sans l'extension)
ext = Right(f.Name, 3) 'définit l'extention du fichier
dc = Right(nf, 2) 'définit les deux derniers caractères du nom du fichier
If dc <> "_L" Then 'condition : si les deux derniers caractères du nom sonf différent de "_L" (fichier non listé)
Set dest = o.Cells(Application.Rows.Count, 2).End(xlUp).Offset(1, 0) 'définit la cellule de destination
For x = 0 To 3 'boucle sur les 4 séparations par le symbole "_"
dest.Offset(0, x).Value = Split(nf, "_")(x) 'répercute chaque séparation dans la colonne
Next x 'prochaine séparation de la boucle
a = CStr(Left(dest.Value, 4)) 'définit l'année a
m = CStr(Mid(dest.Value, 5, 2)) 'définit le mois m
j = CStr(Right(dest.Value, 2)) 'définit le jour j
dest.Value = a & "/" & m & "/" & j 'formate la date dans dest
nf = nf & "_L" 'redéfinit le nom du fichier en ajoutant "_L" (_Listé)
f.Name = nf & "." & ext 'renomme le fichier
End If 'fin de la condition
Next f 'prochain fichier de la boucle
End Sub