VBA et fichier texte

G

Gregory

Guest
Bonjour à tous,

Je n'ai malheureusement pas trop le temps pour l'instant d'apprendre à programmer en VBA alors je m'addresse aux bénévoles connaisseurs pour résoudre mon problème.
Voilà, j'aimerais via excel d'une part ouvrir un fichier texte dont le nom peut varier (fonction getopenfilename je crois?). Ensuite, utiliser le contenu du fichier (ce seront des nombres en colonnes) pour faire apparaitre les nombres sélectionnés dans différentes colonnes excel.
Je suis déja parvenu à faire une macro qui m'ouvre un fichier txt précis et à en lire les données mais mon probléme est de pouvoir sélectionner à chaque fois un fichier txt différent (seul le nom diffère, pas la mise en page du contenu dans le txt).
Pour info mon but est de connecter mon pc à un data logger qui enregistre des tension (volts) en fonction du temps. Les données du logger peuvent etre 'exportées' en fichier txt.
Quelqu'un peut-il m'aider?
Merci
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonsoir ou Bonjour Gregory, John, Blunet, le Forum

Il est clair qu'un fichier joint pourra aider les Contributeurs/Trices du Forum XLD pour trouver une solution 'Pile/Poil'.

Si tu cherches sur ce Forum ou dans les archives j'ai fait pas de démo Userform Import de TXT.

Par contre John, pas glop du tout la Pub en signature. Merci d'avance de corriger.

Bonne Nuit à tous
[ol]@+Thierry[/ol]
 
G

Gregory

Guest
Merci de prendre une minute pour mon problème c'est sympa.

Voilà je joint un exemple de fichier txt. Comme j'ai déja dit, la mise en page des différents fichiers txt sera tjs la même, seul le nom du fichier et les valeurs changent. Il y a donc trois ou quattre colonnes qui devraient apparaître dans des colennes excel (ca vous l'aviez compris je pense...) J'espère que vous parvenez à cibler le prob.
J'arrive sans problème à le faire avec mon exemple ( mais le truc c'est que j'aimerais le faire avec des fichiers aux noms différents).
Voici le code qui marche pour 1 seul et unique nom de fichier:
Sub LireFichierTexte()
Dim un, deux, trois
' Ouvre le fichier en lecture
Open 'le nom de mon fichier.txt' For Input As #1
' Effectue la boucle jusqu'à la fin du fichier
Do While Not EOF(1)
' Lit les données dans trois variables
Input #1, un, deux, trois
' Ecrit les données dans la feuille de calcul à partir de la ligne 2
Range('A65536').End(xlUp)(2).Value = un
Range('B65536').End(xlUp)(2).Value = deux
Range('C65536').End(xlUp)(2).Value = trois
Loop
' Ferme le fichier
Close #1
End Sub


Merci
 
G

Gregory

Guest
Il parait qu'il faut zipper... [file name=txt_20051218112501.zip size=151]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/txt_20051218112501.zip[/file]
 

Pièces jointes

  • txt_20051218112501.zip
    151 bytes · Affichages: 7

john

XLDnaute Impliqué
Salut Greg,

Voici en exemple un petit fichier qui ouvre un fichier texte et qui mes tes nombres en colonne comme dans ton fichier texte.

Tu verra qu'en cellule A1 j'y ai mis le nom du répertoire où se trouve ton fichier et dans la cellule A2 le nom de ton fichier texte.

Bon dimanche.

John [file name=ouvrir_texte_en_colonne.zip size=10537]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ouvrir_texte_en_colonne.zip[/file]

Message édité par: john, à: 18/12/2005 13:53
 

Pièces jointes

  • ouvrir_texte_en_colonne.zip
    10.3 KB · Affichages: 17

_Thierry

XLDnaute Barbatruc
Repose en paix
Bonjour John, Gregory, le Forum

J'ai également préparé une petite démo pour notre ami Grégory, mais je vais regardé aussi ce que tu nous a préparé John et je repasserai.

Par contre le code d'IMport en mode Input que tu nous as mis en ligne Grégory, ne m'envoyait pas 'proprement les valeur Numériques de ton TXT sur les trois colonnes de la Feuille Excel, j'ai donc également tout remanié.

Bon Dimanche à tout à l'heure.

[ol]@+Thierry[/ol]

PS John, je ne sais pas si tu as vu mon message d'hier, mais comme je disais le but de ce Forum n'est pas de faire de la Pub, même si ce n'est que pour des pages Perso et pas un site commercial... Imagine que tout le monde fasse pareil... Ma signature ferait 10 lignes de liens au moins !! Alors merci d'avance et bon dimanche à toi aussi. [file name=USF_Browser_Import_TXT.zip size=20910]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/USF_Browser_Import_TXT.zip[/file]
 

Pièces jointes

  • USF_Browser_Import_TXT.zip
    20.4 KB · Affichages: 24

_Thierry

XLDnaute Barbatruc
Repose en paix
Re Bonjour Gregory, John, le Forum

Je viens de tester ton Fichier John, c'est interressant d'utiliser la méthode OpenText qui facilite la tâche, c'est clair.

Par contre l'argument de type Variant Facultatif 'TrailingMinusNumbers' n'est pas reconnu sous Excel 2000, il ne fonctionne je pense qu'à partir de XP 2002 et 2003.

En fait il faut faire assez attention car entre 2000 Et 2002 pas mal d'arguments de ce style sont apparus dans les méthodes Open et aussi pour les Sort et d'autre PasteSpecial... En général il ne servent pas beaucoup (souvent même inconnus des utilisateurs) mais sont automatiquement repris en enregistrement de macro...

Dans ce cas présent il suffit supprimer ccet argument comme suit :

Sub Macro1()
Dim Chemin As String
Dim Fichier As String

With Sheets('Feuil1')
    Chemin = .Range('A1').Value
    Fichier = '\\' & .Range('A2').Value
End With
   
   
Workbooks.OpenText Filename:=Chemin & Fichier, _
                              Origin:=xlMSDOS, _
                              StartRow:=1, _
                              DataType:=xlFixedWidth, _
                              FieldInfo:=Array(Array(0, xlGeneralFormat), Array(20, xlGeneralFormat), Array(41, xlGeneralFormat))
End Sub

Bon Dimanche
[ol]@+Thierry[/ol]


EDITION !!!

Merci John ;)

Message édité par: _Thierry, à: 18/12/2005 14:39
 

john

XLDnaute Impliqué
Salut Thierry,

Effectivement j'ai office 2003 et je me doutais pas qu'office avait fait autant de changement pour cette fonction :eek:hmy:

La prochaine fois que je répondrai à un post je préciserai que je travail avec office 2003.

Merci pour l'info.

Bonne journée à tous.

John
 
G

Gregory

Guest
Génial!

Merci john et _Thierry, vos codes fonctionnent nickel. C'est exactement ce que je cherchais.
Effectivement Thierry j'avais modifié mon fichiet texte (au départ les nombres étaient simplement séparés par des virgules) afin qu'il ressemble exatement à la réalite (simplement séparés par des espaces).
Un grand merci à vous tous.
Bon dimanche
 

john

XLDnaute Impliqué
Salut,

Voilà la bonne vieille méthode pour extraire tes données hors de ton fichier txt.

Ici comme tu le souhaites, tu peux choisir à partir de quelle donnée tu veux commencer à extraire.

Bonne semaine à tous.

John

Ps: n'oublie pas d'aller changer le chemin et le nom de ton fichier texte dans la macro [file name=import_txt.zip size=10017]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/import_txt.zip[/file]
 

Pièces jointes

  • import_txt.zip
    9.8 KB · Affichages: 26

Discussions similaires

Statistiques des forums

Discussions
312 441
Messages
2 088 465
Membres
103 860
dernier inscrit
SebRol