Bonjour,

J'utilise le code suivant, récupéré sur codesource :

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
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
On appelle cette fonction par :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Call ChangeWords("#", " ", "C:\resutext.txt")
en y mettant le mot a remplacer, le mot de remplacement et le fichier a traiter...

or, cela marche tres bien, mais il n'y a aucune boucle dans cette fonction...
Il faut donc cliquer plusieurs moulte fois sur mon bouton, pour nettoyer le fichier voulu...

Comment faire boucler cette fonction?
j'ai essayé en ajoutant ceci a la fonction:

(avant de chercher si la ligne existe)

et en finissant par
(avant le dernier If)

mais ça me fait une erreur 53...


SI quelqu'un peux m'apprendre a boucler cette fonction, ou connait une methode qui serait plus simple pour le meme resultat...
M E R C I