Lecture et ecriture d'un fichier texte

14classeur1.xlsm (12.66 Ko)

Bonjour tout le monde, je veins soliciter votre aide sur un petit problemme que j'ai sur ma macro. en effet, l'idee c'est a partir de vba, ouvrir un fichir texte, le modifier et ensuite le re enregistrer. Le code fait 20 lignes de codes et j'ai un probleme de syntaxe. J'arrive pas a bien gerer les getopen et les getsave. en plus du code ci dessous, j'ai mis mon fichier excel en fichier joint afin de faciliter la comprehension. j'ai essayer de charger le fichier texte mais le site ne le charge pas. Du coup j'ai mis une capture d'ecran du fichier texte. Merci d'avance pour votre aide

texte

Merci d'avance

Private Sub CommandButton1_Click()
monfichier = Application.GetOpenFilename()
Open monfichier For Input As #1
Dim nbrComp_include As Integer
Dim i As Integer
Dim j As Integer

While Not EOF(1)
        Line Input #1, ligne
        numcode = InStr(1, ligne, "zora")
        If numcode <> 0 Then
        nbrComp_include = 0
        i = 9
        While Cells(i, 3) <> ""
        nbrComp_include = nbrComp_include + 1
        i = i + 1
        Wend

        For j = 1 To j = nbrComp_include Step 1
        Print #1, "INCLUDE " & Cells(j + 2, 3)
        Next j
        End If
Wend
Close #1
monfichier = Application.GetSaveAsFilename()
Open monfichier For Output As #1
Close #1
End Sub

bonsoir,

une proposition (non testée)

Private Sub CommandButton1_Click()
    monfichieri = Application.GetOpenFilename()
    Open monfichieri For Input As #1
    monfichiero = Application.GetSaveAsFilename()
    Open monfichiero For Output As #2
    Dim nbrComp_include As Integer
    Dim i As Integer
    Dim j As Integer
    Do While Not EOF(1)
        Line Input #1, ligne
        numcode = InStr(1, ligne, "zora")
        If numcode <> 0 Then
            nbrComp_include = 0
            i = 9
            Do While Cells(i, 3) <> ""
                nbrComp_include = nbrComp_include + 1
                i = i + 1
            Loop
            For j = 1 To nbrComp_include
                Print #2, "INCLUDE " & Cells(j + 2, 3)
            Next j
        End If
    Loop
    Close
End Sub

Bonjour @h2so4. Tout d'abord merci d'avoir repondu. J'ai testé ton code mais ca ne marche toujours pas. Qand je le lance, il me suprime toutes les lignes de mon fichier texte et l'idee, c'est vraiment de modifier que les lignes qui debutent par include , mais de conserver le reste. Je met le fichier texte en piece jointe, tu comprendra mieu mon probleme et je remet le fichier excel avec ton code

cdlm

12model-test-vba.txt (8.37 Ko)
12classeur1.xlsm (12.71 Ko)

bonjour,

J'ai testé ton code mais ca ne marche toujours pas

tu as demandé de l'aide pour l'ouverture et la sauvegarde de ton fichier. Pour le reste j'ai laissé la logique telle quelle. je ne vois nulle part dans ton code des instructions pour remplacer des lignes contenant INCLUDE, tout au plus, je vois une traitement à faire (copier des cellules du fichier excel) dès lors que l'on trouve les caractères "zora" dans une ligne lue, que j'ai adapté pour que la sauvegarde puisse se faire comme demandé.

S'il n'y a pas "zora" dans ton fichier, rien n'est copié. Donc normal que cela ne fonctionne pas. Code adapté pour inclure toutes les lignes du fichier source. Pour le reste, je ne suis pas devin.

Private Sub CommandButton1_Click()
    monfichieri = Application.GetOpenFilename()
    Open monfichieri For Input As #1
    monfichiero = Application.GetSaveAsFilename()
    Open monfichiero For Output As #2
    Dim nbrComp_include As Integer
    Dim i As Integer
    Dim j As Integer
    Do While Not EOF(1)
        Line Input #1, ligne
        numcode = InStr(1, ligne, "zora")
        If numcode <> 0 Then
            nbrComp_include = 0
            i = 9
            Do While Cells(i, 3) <> ""
                nbrComp_include = nbrComp_include + 1
                i = i + 1
            Loop
            For j = 9 To nbrComp_include + 9
                Print #2, "INCLUDE " & Cells(j, 3)
            Next j
        Else
            Print #2, ligne
        End If
    Loop
    Close
End Sub
Rechercher des sujets similaires à "lecture ecriture fichier texte"