Fonction replace

Bonjour,

J'ai crée une petite macro qui permet d'ouvrir un fichier Excel et de remplacer une ligne part une autre, voici le code en question :

Sub hophop()
    Dim x As Integer, texte As String, i As Long
    x = FreeFile
    fileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
    If fileToOpen = False Then Exit Sub
    Open fileToOpen For Input As #x
    texte = Replace(Input$(LOF(x), #x), "livraison de utilisateur FF3", "livraison de utilisateur DD3" & vbCrLf & "commande validé" & vbCrLf & "passage en revue" & vbCrLf & "numéro -4546" & vbCrLf)
    'texte = Replace(Input$(LOF(x), #x), "livraison de utilisateur FF6", "livraison de utilisateur DD6" & vbCrLf & "commande non validé" & vbCrLf & "passage en revue" & vbCrLf & "numéro -4546" & vbCrLf)
        'texte = Replace(Input$(LOF(x), #x), "livraison de utilisateur DD6", "livraison de utilisateur FF6" & vbCrLf & "commande non validé" & vbCrLf & "passage en revue" & vbCrLf & "numéro -4546" & vbCrLf)
            'texte = Replace(Input$(LOF(x), #x), "livraison de utilisateur DD3", "livraison de utilisateur FF3" & vbCrLf & "commande non validé" & vbCrLf & "passage en revue" & vbCrLf & "numéro -4546" & vbCrLf)
    Close #x
    fichier = Environ("userprofile") & "\Desktop\ttt.txt"
    x = FreeFile: Open fichier For Output As #x: Print #x, texte: Close #x
End Sub

Le problème c'est que je ne peux pas utiliser plus de deux fois la même fonction dans mon programme, j'aimerai rajouter plusieurs replace consécutive.

L'erreur d'exécution se produit : 'erreur d'exécution '62' : L'entrée dépasse la fin de fichier' .

Pouvez vous m'aider svp, je suis bloqué.

Salut SpaceX

Dans ta sub tu récupères le texte jusqu'à la fin du fichier

texte = Replace(Input$(LOF(x), #x)

Donc une fois que tu as ton texte, tu as juste à travailler dessus

Sub hophop()
  Dim x As Integer, texte As String, i As Long
  Dim FileToOpen As Variant, Fichier As String
  x = FreeFile
  FileToOpen = Application.GetOpenFilename("Text Files (*.txt), *.txt")
  If FileToOpen = False Then Exit Sub
  Open FileToOpen For Input As #x
  texte = Replace(Input$(LOF(x), #x), "livraison de utilisateur FF3", "livraison de utilisateur DD3" & vbCrLf & "commande validé" & vbCrLf & "passage en revue" & vbCrLf & "numéro -4546" & vbCrLf)
  texte = Replace(texte, "livraison de utilisateur FF6", "livraison de utilisateur DD6" & vbCrLf & "commande non validé" & vbCrLf & "passage en revue" & vbCrLf & "numéro -4546" & vbCrLf)
  texte = Replace(texte, "livraison de utilisateur DD6", "livraison de utilisateur FF6" & vbCrLf & "commande non validé" & vbCrLf & "passage en revue" & vbCrLf & "numéro -4546" & vbCrLf)
  texte = Replace(texte, "livraison de utilisateur DD3", "livraison de utilisateur FF3" & vbCrLf & "commande non validé" & vbCrLf & "passage en revue" & vbCrLf & "numéro -4546" & vbCrLf)
  Close #x
  Fichier = Environ("userprofile") & "\Desktop\ttt.txt"
  x = FreeFile: Open Fichier For Output As #x: Print #x, texte: Close #x
End Sub

A+

Bonjour SpaceX, Bruno,

SpaceX a écrit :

Le problème c'est que je ne peux pas utiliser plus de deux fois la même fonction dans mon programme

Tu m'as fait une de ces frayeurs, j'te dis pas !!! j'ai cru qu't'avais découvert un nouveau type de fonction du style « jetable au bout de 2 utilisations » !!! avec les gars de l'obsolescence programmée, faut s'attendre à tout ! ils seraient bien capables de nous sortir ça un d'ces 4 matins ! c'est nouveau, ça vient d'sortir : y'a les fonctions kleenex(), rasoir.bic(), et stylo.bic() !

dhany

Rechercher des sujets similaires à "fonction replace"