Lire une partie d'un fichier et copier certaines données sous Excel

Signaler
Messages postés
3
Date d'inscription
jeudi 21 décembre 2000
Statut
Membre
Dernière intervention
15 septembre 2008
-
Messages postés
3
Date d'inscription
jeudi 21 décembre 2000
Statut
Membre
Dernière intervention
15 septembre 2008
-
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!

3 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
Salut,
Va faire un petit tour sur [www.codyx.org www.codyx.org]
il y a des snippets qui pourront t'aider (recherche avec Split)

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
3
Date d'inscription
jeudi 21 décembre 2000
Statut
Membre
Dernière intervention
15 septembre 2008

Merci pour ce renseignement. Bon j'ai pas tout compris! Faut dire que j'ai pas encore eu le temps de regarder ca attentivement!

Mais est-ce que quelqu'un peut me dire pourquoi mon code actuel d'ouverture et de traitement de fichier marche pas, svp?

Merci d'avance.
Messages postés
3
Date d'inscription
jeudi 21 décembre 2000
Statut
Membre
Dernière intervention
15 septembre 2008

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!)

Merci d'avance!