Ouverture données texte

Signaler
Messages postés
1
Date d'inscription
dimanche 8 juillet 2012
Statut
Membre
Dernière intervention
8 juillet 2012
-
Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
-
Bonjour,

Je suis débutant dans l'utilisation de VBA pour excel.
Je souhaite créé une petite macro me permettant d'ouvrir des données stockées dans un fichier txt.
J'ai fait un essai avec le code ci-dessous:

Sub FileName()
FichiersAOuvrir = Application.GetOpenFilename(, txt, , , True)
If IsArray(FichiersAOuvrir) Then
For i = LBound(FichiersAOuvrir, 1) To UBound(FichiersAOuvrir, 1)
'Ouvre les fichiers sélectionnés
Workbooks.Open FichiersAOuvrir(i)
Next i
Else
MsgBox "Annuler"
End If
End Sub

Malheureusement, j'ai 2 problèmes avec cette macro:
1) elle enregistre les données dans un nouveau fichier xls en prenant le nom du fichier texte. Je souhaite que les données restent stockées dans le fichier où j'execute ma macro
2) les données sont stockées dans la cellule A1,L1 alors que je souhaite que ce soit dans A5,L5

Voilà, par avance merci pour votre aide.

A+

4 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,

1) Cette ligne, déjà :
FichiersAOuvrir =  Application.GetOpenFilename(, txt, , , True) 

est fausse, si tu veux dire que tu ne veux ouvrir que les fichiers d'extension .txt !
Syntaxe à voir dans ton aide VBA, s'il te plait ! (avec même un exemple) ! Et corrige !
2) Workbooks.Open est là pour ouvrir des classeurs, pas des fichiers texte qui, eux, s'ouvrent à l'aide de l'instruction Open, à lire également dans ton aide VBA, ainsi que les instructions qui vont avec (Input, OutPut, Line Input ...) et les exemples accompagnant tout ça !
Reviens après lecture et avec le code écrit sur ces bases si encore en difficultés.
Ce forum regorge par ailleurs de discussions et codes concernant la lecture et l'écriture de fichiers textes. Et il dispose d'un moteur de recherche (à toujours utiliser avant de "poster") qui t'y conduira.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
156
Bonjour,

Apparemment, cest donc un CSV que tu as.
Regardes les instructions :
Open
Close
Line Input
Split

Je pense qu'avec une boucle "Do Until EFO(MonIdFichier)", tu y arriveras.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour, NHenry.
Dyslexie ?


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
156
Bonjour,

Non, les touches se déplacent toutes seules :)
EOF évidemment, pas EFO.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site