SmartFAQ is developed by The SmartFactory (http://www.smartfactory.ca), a division of InBox Solutions (http://www.inboxsolutions.net)

[VBA] Modifier en lot le contenu des fichiers .txt d'un répertoire

Q&R publiée par MyDearFriend! le 10-09-2008 (5180 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 :

DANS UN MODULE DE CODE STANDARD
Option 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)

  Imprimer la Q&R Envoyer la Q&R