psgkiki
Messages postés42Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention17 août 2010
-
16 août 2010 à 16:57
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
17 août 2010 à 13:17
Bonjour
Je suis bloqué sur ma macro Excel qui permet de recopier des données d'un fichier TXT dans un classeur EXCEL.
J'aimerai cependant recopier qu'une partie du fichier txt. J'ai donc ouvert le fichier TXT (Open) et j'ai récupérer la ligne de début et la ligne de fin.
Maintenant j'aimerai ecrire le contenu entre la ligne de debut et la ligne de fin mais je n'y arrive pas.
Voici un extrait de mon code :
Sub proc_WriteXMLTempFile(ByVal ao_file As File, ByVal ai_StartLineMessage As Integer, ByVal ai_EndLineMessage As Integer)
Dim XMLfilename As String
Dim texte
XMLfilename = "D:\...\XMLTempFile.xml"
Open ao_file For Input As #1
Open XMLfilename For Output As #2
While Not EOF(1)
Line Input #1, texte
//Comment dire ecrit moi (Write #2, texte) de la ligne de debut (statLine) à la ligne de fin (endLine).
Wend
Close #1
Close #2
End Sub
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 16 août 2010 à 21:15
je ferai en gros :
Dim xsLines() As String
Dim i As Long
Open "C:\in.txt" For Input As #1
xsLines = Split(Input(LOF(1), 1), vbNewLine)
Close #1
Open "C:\out.txt" For Output As #1
For i = 1 To UBound(xsLines) - 1
Print #1, xsLines(i)
Next
Close #1
psgkiki
Messages postés42Date d'inscriptionmercredi 9 juin 2004StatutMembreDernière intervention17 août 2010 17 août 2010 à 12:39
Merci pour tes conseils. Je vais essayer de m'en sortir !
Là comme tu m'as dit, tu sautes la première et la dernière ligne. Or moi, dans mon fichier, le contenu que je veux récupérer est au milieu du fichier. C'est pour cela que j'ai récupérer la ligne de début et la ligne de fin.
Moi ma première pensée était de me positionner sur la ligne de début puis de dire TANTQUE nbLignes<>EndLigne alors tu écris dans le fichier. Ca pourrait être possible mais comment incrémenter la ligne (Line Input #1, texte) dans la boucle.