Importation de texte [Résolu]

Messages postés
11
Date d'inscription
samedi 23 octobre 2004
Dernière intervention
21 juin 2013
- - Dernière réponse : MarcPL
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
- 21 juin 2013 à 18:47
Bonjour,
J'utilise Workbooks.OpenText avec les bons séparateurs quand je les connais (.csv=> ";") mais, dans le cas des fichiers .txt, je voudrais faire comme l'"Assistant d'importation de text" d'Excel. Est-il accessible par une autre méthode ?
Sinon il faut essayer de déterminer en comptant les Tab et les ";" de la première ligne (beurk), même si, comme l'Assistant, je demande à l'utilisateur de choisir, il faut bien que je lui montre les conséquences de son choix...

Quelqu'un sait-il faire ?

Merci

Marcel
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
3
Merci
En somme quelque chose de ce genre :
Application.Dialogs(xlDialogImportTextFile).Show

non ?

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

Merci MarcPL 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de MarcPL
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
3
Merci
En fait c'est l'accès direct à l'Assistant Excel que tu cherchais !
Les données sont importées selon le choix effectué dans l'assistant,
feuille active ou dans une nouvelle feuille ...

En fait je n'y connais rien, j'ai juste ouvert l'aide VBA intégrée
puis j'ai pris 10 secondes pour y effectuer une recherche !

Cette collection Dialogs n'a pas l'air paramétrable ...

Autre exemple (affichant le nom du classeur après importation) :
If Application.Dialogs(xlDialogOpen).Show Then MsgBox ActiveWorkbook.Name


___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

Merci MarcPL 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de MarcPL
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
3
Merci
J'ai juste effectué une recherche sur le mot "dialogue" ...

Dans la liste proposée j'ai sélectionné "Dialogs, collection d'objets"
puis en bas sur "Listes d'arguments de boîte de dialogue intégrée"
puis j'ai directement fait défiler la liste jusqu'au I comme "import" …

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !

Merci MarcPL 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de MarcPL
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
0
Merci
Bonjour,
je sais faire quand c'est clair mais là je reste dans le brouillard …

___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Commenter la réponse de MarcPL
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour,
Pas clair, en effet !
Une chose est certaine : lorsque l'on utilise un fichier texte, on sait en général comment il est constitué et on agit en fonction de cette connaissance.
Une méthode "universelle" n'existe pas et n'aurait d'ailleurs aucun sens.
Quant à :
déterminer en comptant les Tab et les ";" de la première ligne (beurk)

Remplaçons donc volontiers le "beurk" par "A l'inconscient" !" (car ces "présences" ne sont pas forcément ni assurément significatives, ni même suffisamment "révélatrices" et ne sont que des "indices" de probabilité !)
Conclusion : on ne joue avec des fichiers texte (importés ou simplement à lire) que lorsque l'on en connaît la structure !


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
11
Date d'inscription
samedi 23 octobre 2004
Dernière intervention
21 juin 2013
0
Merci
Bonjour,
Excusez-moi de ne pas avoir été clair.
Lorsque vous ouvrez, sous Excel, un fichier texte .txt, cela ouvre un "Assistant" qui vous aide à déterminer la structure du fichier : champs délimités ou de largeur fixe, et qui, dans le premier cas, vous permet d'essayer un ou plusieurs délimiteurs, dans le second, d'indiquer les largeurs des colonnes. De façon interactive, cet Assistant vous montre le résultat de vos choix sur les 5 premières lignes du fichier.

J'ai une application qui ouvre des fichiers texte, soit .csv (champs délimités par des point-virgules), soit .txt (champs délimités par des tabulations).
Je connais la structure attendue des champs, et fais une vérification (nombre et nature des champs) avant le traitement.

Par contre, à cause de l'origine variée des fichiers reçus, j'ai souvent des fichiers csv qui sont suffixés .txt.
Ça me plairait si, au lieu de Workbooks.OpenText (qui fixe le format du fichier à ouvrir), je pouvais avoir accès à ce fameux Assistant d'Excel qui fait du bon boulot. Est-il disponible ? Quelqu'un en a-t-il réalisé un clone insérable dans une application ?

Ai-je été plus clair ?

Merci

Marcel
Commenter la réponse de duboue
Messages postés
11
Date d'inscription
samedi 23 octobre 2004
Dernière intervention
21 juin 2013
0
Merci
Bonjour et MERCI Marc...
Après un rapide essai, ça remplace effectivement mon GetOpenFilename et mon OpenText !!!
En fait, si je comprends bien la logique de ce dialogue, ce n'est pas une ouverture de fichier (son nom n'est pas retourné par l'appli comme par GetOpenFilename), mais un transfert de données. Il suffit que j'ouvre mon nouveau classeur et que j'insère les données sur la page en cours.
C'est ça ?

J'ai juste fait un test à part, ça a l'air fort bien
En Excel (Explorateur d'objets) n'y a aucune aide sur ce dialogue, mais comme tu as l'air de bien connaitre :

- comment récupérer le nom du classeur ouvert ?
- peut-on fixer certains paramètres (type de fichier (*.*) ,au lieu de (.txt), par exemple

Merci


Marcel
Commenter la réponse de duboue
Messages postés
11
Date d'inscription
samedi 23 octobre 2004
Dernière intervention
21 juin 2013
0
Merci
Bonjour,
Tu es dur avec moi ....
Tu as eu ta réponse en 10 secondes et moi j'y suis pas arrivé ! Quelle demande as-tu faite ?
Moi, avec "Importation de texte", "ouvrir un fichier texte", "lire un fichier texte", je n'ai pas le dialogue que tu m'as fourni. J'ai eu les méthodes classiques mais pas ça ...
P.S. J'ai Office 2003

Marcel
Commenter la réponse de duboue
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Bonjour, dudoue,
C'est comme (analogie) une recherche de textes dans le Code Civil. Elle n'est fructueuse que si l'on a acquis suffisamment de notions élémentaires (pour savoir quoi chercher) et qu'on les utilise avec logique.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Alors :
1) savoir quoi chercher :
tu as écrit :
avoir accès à ce fameux Assistant d'Excel qui fait du bon boulot. Est-il disponible ?

cela s'appelle afficher l'une des boîtes de dialogue de l'application Excel.
=>>
2) je frappe d'instinct naturel "boites de dialogues application" dans l'aide VBA et lis les rubriques. J'en vois une nommée Application.Dialogs, propriété
. Elle me "parle" ====>> je l'ouvre
3) Je vois un exemple. Celui-ci :
Application.Dialogs(xlDialogOpen).Show

Et me dis tout naturellement que si existe le paramètre xlDialogOpen, c'est que d'autres sont possibles également (sinon, aucun paramètres n'aurait été nécessaire ! - Logique, non ?).
Mais où sont-ils donc cachés, ces paramètres ?
4) puisque xlDialogOpen est l'un de ces paramètres, je suppose qu'il figure dans une liste que je pourrais tenter de découvrir en frappant :
xlDialogOpen
dans l'aide VBA ... (logique, non ?) ===>> je fais donc ===>>
5) tiens tiens ! je vois, ce faisant, une rubrique
Listes d'arguments de boîte de dialogue intégrée

M'a tout l'air d'être ce que je cherche, non ? ===>> je l'ouvre
6)Hé bé ... oui ... j'y ai tous mes paramètres possibles. Quelle chance
Je les lis tous ===>> tiens ! Il y en a un qui me "parle" : xlDialogImportTextFile
Voilà voilà ! Juste de la logique et de la raison.

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviendrai que si nécessité de la compléter.
Commenter la réponse de ucfoutu
Messages postés
172
Date d'inscription
jeudi 8 décembre 2011
Dernière intervention
21 juillet 2013
0
Merci
Au passage en 2003 une variante simple pour la boîte xlDialogOpen :
If Application.FindFile Then MsgBox ActiveWorkbook.Name


___________________________________________________________________________________________________________________
Comme la vitesse de la lumière est supérieure à celle du son, certains ont l'air brillant avant d'avoir l'air con !
Commenter la réponse de MarcPL

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.