Lecture et ecriture d'un fichier texte
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
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 Subbonsoir,
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 SubBonjour @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
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