Lire une partie d'un fichier et copier certaines données sous Excel
malaka78
Messages postés3Date d'inscriptionjeudi 21 décembre 2000StatutMembreDernière intervention15 septembre 2008
-
10 sept. 2008 à 19:47
malaka78
Messages postés3Date d'inscriptionjeudi 21 décembre 2000StatutMembreDernière intervention15 septembre 2008
-
15 sept. 2008 à 11:00
Bonjour,
Comme tout bon débutant, j'ai un petit soucis (sinon je serais pas la!).
Je souhaiterai creer une macro sous Excel qui m permette d'aller lire un fichier et de copier les données qui se trouvent entre deux chaines de caracteres donnees.
Simple me direz-vous (ou peut-etre pas!).
En fait, pour mon boulot, un logiciel genere des fichiers ".output" (histoire de compliquer le probleme, c'est pas des '.txt"), et je souhaite ne recuperer qu'une partie de ce fichier. La seule chose bien, c'est que ce je souhaite recuperer se trouve toujours entre deux chaines de caracteres que je connais.
Un petit exemple etant toujours plus clair, mon fichier est organise comme suit:
blabla
blabla
Chaine1
donnees
donnees
Chaine2
blabla
blabla
Alors, pour commencer simplement, j'ai deja essaye d'ouvrir un fichier avec une fenetre type ouvrir et de traiter un fichier mais ca marche pas! En meme temps, j'ai fusionne betement deux macros donc c'est logique que ca marche pas!
Voici le code employe:
Sub LireFichierTexte()
Dim Prenom, Nom, Age
' Ouvre le fichier en lecture
' Open "C:\Excel\Listing.txt" For Input As #1
Open CeFichier = Application.GetOpenFilename("Text Files (*.txt), *.txt") For Input As #1
If VarType(CeFichier) = vbBoolean Then
Exit Sub
Else
Workbooks.OpenText Filename:=CeFichier, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False, _
Space:=False, Other:=False, FieldInfo:=Array(1, 1)
End If
' Effectue la boucle jusqu'à la fin du fichier
Do While Not EOF(1)
' Lit les données dans trois variables
Input #1, Prenom, Nom, Age
' Ecrit les données dans la feuille de calcul à partir de la ligne 2
Range("A65536").End(xlUp)(2).Value = Prenom
Range("B65536").End(xlUp)(2).Value = Nom
Range("C65536").End(xlUp)(2).Value = Age
Loop
' Ferme le fichier
Close #1
End Sub
Bon j'espere avoir ete clair (j'en doute mais bon!)
Merci d'avance pour toute info qui me permettrait d'avancer!
A voir également:
Lire une partie d'un fichier et copier certaines données sous Excel
malaka78
Messages postés3Date d'inscriptionjeudi 21 décembre 2000StatutMembreDernière intervention15 septembre 2008 15 sept. 2008 à 11:00
bon, mes mix de scripts sont vraiment stupides, surtout qu'ils servent a rien! Desole de vous avoir embetes avec ca pour rien!
Mais, euh, quequ'un aurait-il la bonte de m'expliquer la fonction split, svp? Je suis pas informaticien et j'y comprends vraiment rien!!!
Pour rien arranger, mes cours d'infos remontent a pas mal d'annees (et ils etaient pas geniaux a l'epoque alors imaginez ce qu'il m'en reste aujourd'hui!)