[VBA] Modifier en lot le contenu des fichiers .txt d'un répertoire
Q&R publiée par MyDearFriend! le 10-09-2008 (6480 Lectures)
La procédure ci-dessous permet de remplacer une chaine de caractères par une autre dans l'ensemble des fichiers texte d'un dossier :
REMARQUE :
Sur Excel 97, Il conviendra de remplacer :
DANS UN MODULE DE CODE STANDARDOption Explicit
Sub Traitement()
'myDearFriend! - www.mdf-xlpages.com
Dim Fichier As Object
Dim Chemin As String, T As String
Dim TSource As String, TCible As String
Dim Compteur As Long
'A adapter...
Chemin = "C:\Temp\"
TSource = "Ancien Texte"
TCible = "Nouveau Texte"
'Traitement
With CreateObject("Scripting.FileSystemObject")
For Each Fichier In .GetFolder(Chemin).Files
If Fichier.Name Like "*.txt" Then
Compteur = Compteur + 1
'Ouvre le fichier texte et mémorise le contenu
With .OpenTextFile(Chemin & Fichier.Name, 1)
T = .readall
.Close
End With
'Traite le contenu
T = Replace(T, TSource, TCible)
'Crée le fichier texte modifié
With .CreateTextFile(Chemin & "OK " & Fichier.Name, True)
.WriteLine T
.Close
End With
End If
Next Fichier
End With
MsgBox Compteur & " fichiers traités."
End Sub
REMARQUE :
Sur Excel 97, Il conviendra de remplacer :
T = Replace(T, TSource, TCible)Par :
T = Application.Substitute(T, TSource, TCible)
|