Importer des fichiers txt dans excel avec une macro vba [Résolu]

Signaler
Messages postés
4
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
18 avril 2007
-
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
-
Bonjour!

 Je suis étudiante en finance et je fais mes premiers pas en VBA. Je dois réaliser un petit logiciel de trading avec excel VBA. Pour ce faire, je souhaite importer des fichiers txt dans excel. Beaucoup de sites me proposent d'utiliser l'assistant mais je souhaiterai passer par une macro VBA qui fera l'extraction automatique via un bouton. Est-ce possible? et si oui, comment puis-je procéder?

Merci d'avance!!

8 réponses

Messages postés
27
Date d'inscription
vendredi 10 octobre 2003
Statut
Membre
Dernière intervention
5 juin 2007

Bonjour,

comment est structuré ton fichier txt?

@++

hugoflash
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Je pense que cela est possible.


Déjà pour avoir une base de code, tu peux utiliser la petite astuce de l'enregistrement de la macro :

Tu lance l'enregsitrement d'une macro. Pendant l'enregistrement, tu fais une importation manuellement avec l'assistant.

Une fois l'importation terminée, tu arrete l'enregistrement de la macro.

Ensuite tu ouvre l'éditeur VBA, tu regarde dans Module1, tu trouvera le
code d'importation d'un fichier texte. Il ne te reste plus qu'a t'en
inspirer pour faire ta macro.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
17
Enregistre toi, fais Ouvrir, choisi (au lieu de fichier Excel) fichier texte, clique sur ton fichier, et diverses options te seront proposées, choisi les et après, arrête l'enregistreur de macro.. t'auras le code 

@++


  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~
  
Messages postés
4
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
18 avril 2007

Cette stratégie marche avec un fichier txt mais en fait mon problème est que j'ai 14 fichiers txt que je veux importer simultanément sur le même fichier excel, c'est là que ca se complique. Pouvez-vous me dire si c'est réalisable?
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
Bien sur que c'est possible.

A partir du code obtenu avec la methode donnée plus haut, il te faut avoir un moyen d'avoir la liste des fichiers à importer. Il te faut rajouter une bouclepour executer le code obtenu 14 fois. A chaque cycle, il te faudra modifier le nom du fichier à importer à partir de la liste des fichiers et éventuellement la destination de l'importation.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Comme disait HugoFlash, ce serait bien de voir la structure du fichier.

Il faut s'assurer qu'un copier/coller se fera correctement avec le bon formatage, que les chiffres seront des chiffres et non du texte, que chaque donnée sera dans une cellule et non regroupées dans la même, ...

Et peut-être qu'en connaissant le site où tu prends tes fichiers, tu aurais d'autres suggestions...

Et finalement, si tu recherches la rapidité pour le genre d'application que tu fais, il vaudrait peut-être mieux que tu travailles avec autre chose que les feuilles Excel, mais plutôt la mémoire vive de l'ordi...

MPi
Messages postés
4
Date d'inscription
mercredi 11 avril 2007
Statut
Membre
Dernière intervention
18 avril 2007

Merci à tous, je vais peut être vous paraître nulle mais le coup de la boucle je comprend pas trop. je connais la boucle mais je vois pas comment je peux changer le nom du fichier à chaque fois. Si vous souhaitez toujours me répondre je vous remercie!
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
17
Salut,

par exemple, tu rentres les noms de tes fichiers dans un tableau (variable)

Dim MesFichiers(2) As String, Contenu(2) As String, i As Integer, FF As Integer

MesFichiers(0) =  "C:\Fichier1.txt"
MesFichiers(1) = "C:\Fichier2.txt"
MesFichiers(2) = "C:\Fichier3.txt"
FF = FreeFile

' stockage du contenu des 3 fichiers dans les variables
For i = 0 To 2
   Open MesFichiers(i) For Input As #FF
      Contenu(i) = Input(Lof(FF), #FF)
   Close #FF
Next i

For i = 0 To 2
   MsgBox Contenu(i)
Next i

Erase MesFichiers, Contenu

~ <small> Mortalino ~ Colorisation automatique </small>

@++





<hr width ="100%" size="2" />

  --Mortalino--
Le mystérieux chevalier, ~Provençal, le Gaulois~