Public Sub RemplacerCaractereFichier(pathFichier As String, aRemplacer(), lesRemplacants())
'si les tableaux ne font pas la même taille, quitter la macro
If UBound(aRemplacer) <> UBound(lesRemplacants) Then Exit Sub
'déclaration des variables
Dim myFso As Object, textFileOrig As Object, textFileFin As Object
Dim i As Integer, extension As String, fichierTemp As String, ligne As String
'créer le path d'un fichier temporaire
extension = Right(pathFichier, InStr(StrReverse(pathFichier), "."))
Do
fichierTemp = Left(pathFichier, Len(pathFichier) - Len(extension)) & CStr(Int(100 * Rnd)) & extension
Loop Until Dir(fichierTemp) = vbNullString
'ouvrir le fichier texte et créer le fichier temp
Set myFso = CreateObject("Scripting.FileSystemObject")
Set textFileOrig = myFso.OpenTextFile(pathFichier, 1)
Set textFileFin = myFso.CreateTextFile(fichierTemp, True)
'boucler sur toutes les ligne du fichier texte
While Not textFileOrig.AtEndOfStream
'récupérer la ligne
ligne = textFileOrig.ReadLine
'remplacer tous les caractères
For i = LBound(aRemplacer) To UBound(aRemplacer)
ligne = Replace(ligne, aRemplacer(i), lesRemplacants(i))
Next i
'écrire la ligne dans le fichier temp
textFileFin.WriteLine ligne
Wend
'fermer les fichiers
textFileOrig.Close: Set textFileOrig = Nothing
textFileFin.Close: Set textFileFin = Nothing
'supprimer le fichier original et renommer le fichier temp (avec le nom original)
myFso.DeleteFile pathFichier
Name fichierTemp As pathFichier
Set myFso = Nothing
End Sub