Sub Convertir()
Dim chemin$, fichier$, d As Object, tablo, i&, ncol%
chemin = ThisWorkbook.Path & "\" 'à adapter
fichier = Dir(chemin & "*.csv") '1er fichier CSV du dossier
'---listes des anciens et nouveaux codes---
Set d = CreateObject("Scripting.Dictionary")
tablo = Feuil2.[A1].CurrentRegion.Resize(, 2) 'matrice, plus rapide, à adapter
For i = 2 To UBound(tablo)
d(tablo(i, 1)) = tablo(i, 2)
Next
'---traitement des fichiers CSV___
Application.ScreenUpdating = False
Application.DisplayAlerts = False 'si le fichier a déjà été créé
While fichier <> ""
With Workbooks.Open(chemin & fichier)
With .Sheets(1).Cells(1).CurrentRegion
.Columns(1).Replace "_", ",", xlPart
ncol = Len(.Cells(2, 1)) - Len(Replace(.Cells(2, 1), ",", "")) + 2 'nombre de colonnes
.Columns(2).Cut .Columns(ncol) 'couper-coller
.Columns(1).TextToColumns .Cells(1), xlDelimited, Comma:=True 'commande Convertir
tablo = .Columns(1).Resize(, 2) 'matrice plus rapide, au moins 2 éléments
For i = 2 To UBound(tablo)
tablo(i, 1) = d(Left(tablo(i, 1), 10)) 'utilisation des nouveaux codes
Next
.Columns(1) = tablo
.Columns(ncol).Replace " g", ""
.Cells(1).Resize(, 4) = Array("Field", "Row", "Column", "Value")
.Columns.AutoFit 'ajustement largeurs
End With
.SaveAs chemin & UCase(Trim(Split(Left(.Name, Len(.Name) - 4), "-")(1))), 56 'fichier.xls
.Close
End With
fichier = Dir 'fichier suivant
Wend
End Sub