Ajout texte ligne suivante

bonjour à tous,

le code suivant me permet d'ajouter du texte dans la ligne cible.

est il possible de modifier le code pour que le texte a ajouter ce colle sur la ligne suivante de la ligne cible.

merci d'avance de votre aide

Sub ajout() 'ajout texte à la fin de la ligne'
Dim start As Single
start = Time
Dim montab()
Dim i As Integer
Dim ligne As Integer
Dim C As Range
Dim contenu As String
Dim mon_fichier As String
For Each C In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
mon_fichier = C.Offset(0, 6) & C.Value
Open mon_fichier For Input As #1
     Do While Not EOF(1)
       Line Input #1, contenu
          ligne = ligne + 1
      Loop
      Close #1

    ReDim montab(ligne)
    Open mon_fichier For Input As #1

    ligne = 1
        Do While Not EOF(1)
            Line Input #1, contenu
            If C.Offset(0, 2) = contenu Then contenu = contenu & " " & C.Offset(0, 8)
            montab(ligne) = contenu
            ligne = ligne + 1
        Loop
Close #1
Open mon_fichier For Output As #1
For i = 1 To ligne - 1
Print #1, montab(i)
Next i
Close #1
Next
MsgBox ("durée du traitement: " & Format((Time - start), "hh:mm:ss"))
End Sub

Salut,

Si je ne me trompe pas sur ta demande tu dois utiliser la méthode Append quand tu veux ajouter quelque chose à ton fichier, voilà une petite sub qui te permet de choisir si tu remplace ou si tu ajoutes

Je viens de faire un EDIT pour y placer une boucle

' // WriteLinesInTextFile By Jean-Paul (Valtrase) le : 14/04/2022
' // Ecrit dans un fichier log un message
Sub WriteLinesInTextFileX(FileName As String, Lines As Range, Optional Replace As Boolean)
    Dim Channel As Long
    Dim Counter As Long
    Dim Ele As Range

    Channel = FreeFile
    If Replace Then
        Open FileName For Output As Channel
    Else
        Open FileName For Append As Channel
    End If

    For Each Ele In Lines
        Print #Channel, Ele.Value
    Next
    Close Channel
End Sub

et pour l'appel en admettant que tu as un tableau structuré nommé Tableau1 avec une colonne nom tu fais

WriteLinesInTextFileX "C:\Users\Dad\Desktop\Test Append.txt",Range("Tableau1[Nom]") ,False

Jean-Paul, merci de ton aide mais tu m'as totalement perdu.

je comprend pas, tout simplement.

il n'y a pas la possibilité de modifier un tout petit peu le code initiale ??

Re,

Méthode Append au lieu de Output...

Sub ajout() 'ajout texte à la fin de la ligne'
Dim start As Single
start = Time
Dim montab()
Dim i As Integer
Dim ligne As Integer
Dim C As Range
Dim contenu As String
Dim mon_fichier As String
For Each C In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
mon_fichier = C.Offset(0, 6) & C.Value
Open mon_fichier For Input As #1
     Do While Not EOF(1)
       Line Input #1, contenu
          ligne = ligne + 1
      Loop
      Close #1

    ReDim montab(ligne)
    Open mon_fichier For Input As #1

    ligne = 1
        Do While Not EOF(1)
            Line Input #1, contenu
            If C.Offset(0, 2) = contenu Then contenu = contenu & " " & C.Offset(0, 8)
            montab(ligne) = contenu
            ligne = ligne + 1
        Loop
Close #1
' // ICI tu appelle la methode Append au lieux de Output
Open mon_fichier For Append As #1
For i = 1 To ligne - 1
Print #1, montab(i)
Next i
Close #1
Next
MsgBox ("durée du traitement: " & Format((Time - start), "hh:mm:ss"))
End Sub

je viens d'essayer... Soucis !

ça me duplique plein de lignes

il faut uniquement que le texte contenu en colonne i soit ajouter à la ligne suivante.

Re,

Bé oui ça duplique t'as bien fait une boucle non?

Open mon_fichier For Append As #1
For i = 1 To ligne - 1
Print #1, montab(i)
Next i
Close #1

Si tu nous donnes la finalité de ton code on pourras peut-être t'aider.

ok, voici ci dessous le contenu d'un ficheir txt

(DEBUT PROG OPE4 M14X150 CARTER MVS)

(FORET 012.5)

M106T175

T20

M98P1920

M106T88

hhpl125

M98P1920

ensuite je fais une lecture des pgm grâce au fichier ci dessous.

lors de la lecture, un résultat est généré en colonne i

j'aurai besoin que le résultat de cette colonne i soit ajouter a la fin de la ligne suivante

exemple :

M0

(DEBUT PROG OPE4 M14X150 CARTER MVS)

(FORET 012.5)

M106T175

T20 (le résultat de la colonne i )

M98P1920

M106T88

hhpl125 (le résultat de la colonne i )

M98P1920

8copie-forum.xlsm (33.18 Ko)

bonjour a tous,

je me permet de faire un UP....

Rechercher des sujets similaires à "ajout texte ligne suivante"