Bonjour je possède un code qui me permet de remplacer une chaine de caractère par une autre chaine de caractère
Mais le probleme est qu'il le realise cela que pour la 1ere correspendance comment faire cela pour l'ensemble des lignes

Est il possible de faire un boucle du type "For each" ou "If"?

Voilà le code



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
 
Call ChangeWords("Origine", "essao", "C:\Fichier test.txt")
 
Private Function ChangeWords(sWordsToRemove As String, sWordsToChange As String, sFile As String) As Boolean
    If Dir(sFile, vbSystem Or vbHidden) = vbNullString Then
'       fichier existe?
        ChangeWords = False
    Else
'       ouvre le fichier
        Dim FF As Integer, sBuffer As String
        FF = FreeFile
        Open sFile For Input As #FF
            sBuffer = Input(LOF(FF), 1)
        Close #FF
'       ligne à changer existe?
        Dim lPos As Long
        lPos = InStr(1, sBuffer, sWordsToRemove)
        If lPos = 0 Then
            ChangeWords = False
        Else
'           on découpe
            Dim sFirst As String, sLast As String
            sFirst = Left$(sBuffer, lPos - 1)
            sLast = Right$(sBuffer, Len(sBuffer) - lPos - Len(sWordsToRemove) + 1)
'           on écrit
            FF = FreeFile
            Open sFile For Output As #FF
                Print #FF, sFirst & sWordsToChange & sLast
            Close #FF
            ChangeWords = True
        End If
    End If
End Function
Merci