XL 2016 Importer des valeurs de fichiers CSV sans les ouvrir

David73

XLDnaute Nouveau
Bonjour,

A l'aide d'une macro dans un fichier Excel, j'aimerais importer certaines valeurs contenues dans une centaines (voir plus) de fichiers CSV.

Comme il y a beaucoup de CSV, je préfèrerais ne pas les ouvrir mais récupérer directement les valeurs ...

Je sais que des discussions traitent de ce sujet mais elle me semblent obsolètes et ne fonctionnent pas chez moi.

Merci beaucoup pour votre aide...
 

Cousinhub

XLDnaute Barbatruc
Bonjour,
Je pense que tu t'éparpilles un peu..
La première chose à faire serait, en premier lieu, de bien élaborer la requête PQ, quitte ensuite, si tu le désires, en extraire un code VBA (mais ce sera sans doute inutile, il suffira de modifier l'adresse du dossier, dans une cellule au besoin, s'il y en a d'autres à traiter)
Lorsque tu dis :
La première difficulté est que j'ai rencontrée est que je voudrais sélectionner la 3ème ligne comme entête.... et je n'y arrive pas !
Il suffit de supprimer les 2 premières lignes, puis de désigner la 1ère ligne comme en-tête. Et ensuite, selon le nombre de fichiers à traiter, insérer un index conditionnel qui permettrait de ne garder que les lignes "utiles".
Mais pour cela, il nous faudrait au moins 1 fichier "type" au format csv (@Staple1600 t'a indiqué comment le joindre sur le site).
A te relire
 

Hasco

XLDnaute Barbatruc
Repose en paix
Oui, voilà, il faut passer par la macro.....
Bonjour,
Oui vous avez raison il ne faut pas écouter mes petits camarades qui préfèrent vous rendre autonome et vous proposent des choses simples que vous pourriez trop vite maîtriser.
L'obscure VBA qui demande des années de pratique est bien mieux. En plus vous serez certain d'avoir à revenir ici ou ailleurs pour qu'un grand prêtre vbiste vous dépatouille du bourbier que vous aurez construit.
Oui vous avez raison, n'apprenez rien de nouveau qui pourrait mettre en danger vos certitudes.
 
Dernière édition:

David73

XLDnaute Nouveau
Bonjour,
Oui vous avez raison il ne faut pas écouter mes petits camarades qui préfèrent vous rendre autonome et vous proposent des choses simples que vous pourriez trop vite maîtriser.
L'obscure VBA qui demande des années de pratique est bien mieux. En plus vous serez certain d'avoir à revenir ici ou ailleurs pour qu'un grand prêtre vbiste vous dépatouille du bourbier que vous aurez construit.
Oui vous avez raison, n'apprenez rien de nouveau qui pourrait mettre en danger vos certitudes.

Au risque de vous décevoir, je suis beaucoup plus à l'ais en VBA qu'en Powerquery ; et de ce fait, je suis plus autonome et donc moins tenté de demander aux autres de "dépatoullier mon bourbier".
 

David73

XLDnaute Nouveau
Bonjour,
Je pense que tu t'éparpilles un peu..
La première chose à faire serait, en premier lieu, de bien élaborer la requête PQ, quitte ensuite, si tu le désires, en extraire un code VBA (mais ce sera sans doute inutile, il suffira de modifier l'adresse du dossier, dans une cellule au besoin, s'il y en a d'autres à traiter)
Lorsque tu dis :

Il suffit de supprimer les 2 premières lignes, puis de désigner la 1ère ligne comme en-tête. Et ensuite, selon le nombre de fichiers à traiter, insérer un index conditionnel qui permettrait de ne garder que les lignes "utiles".
Mais pour cela, il nous faudrait au moins 1 fichier "type" au format csv (@Staple1600 t'a indiqué comment le joindre sur le site).
A te relire

J'ai quelques milliers de CSV à traiter et s'il suffisait de supprimer les 2 premières lignes, je l'aurais déjà fait...
 

Cousinhub

XLDnaute Barbatruc
J'ai quelques milliers de CSV à traiter et s'il suffisait de supprimer les 2 premières lignes, je l'aurais déjà fait...
Euh, comment dois-je prendre cette "réponse"...?
Si tu t'arrêtes à cette ligne, effectivement, tu sais le faire...
Maintenant, c'est toi qui a besoin d'aide, nous, on voulait (je dis bien "voulais", car ce sera sans moi..) juste t'aider, t'orienter..
Bon courage
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil David73, Hasco ;); bhbh

Petite question au débotté à David
Est-ce que tu as fait le test PQ que j'ai détaillé plus bas ?
(et qui se résume à moins de 10 clics) (*)
NB: Je viens de le refaire en laissant tourner l'enregistreur de macros
Et O surprise !
[X] Moi qui croyait qu'on ne pouvait pas manipuler PQ par le biais de VBA

* : une fois la requête créée manuellement, on la conserve, il n'y a plus qu'à l'actualiser.
C'est tout l'intérêt de la chose ;)

EDITION
[X] Alors là, je suis scotché
j'ai copié telle quelle la macro obtenue avec l'enregistreur de macros quand je manipulais PQ manuellement, dans un nouveau classeur.
Et comme disait Rick: "Cà roule pour moi !"
L'import est immédiat ! ;)
(testé avec 10 CSV de 100 lignes chacun)
 
Dernière édition:

David73

XLDnaute Nouveau
Bonjour le fil David73, Hasco ;); bhbh

Petite question au débotté à David
Est-ce que tu as fait le test PQ que j'ai détaillé plus bas ?
(et qui se résume à moins de 10 clics) (*)
NB: Je viens de le refaire en laissant tourner l'enregistreur de macros
Et O surprise !
Moi qui croyait qu'on ne pouvait pas manipuler PQ par le biais de VBA

* : une fois la requête créée manuellement, on la conserve, il n'y a plus qu'à l'actualiser.
C'est tout l'intérêt de la chose ;)
Oui, j'ai longuement testé PQ et j'ai rencontré pas mal de blocages.

Avec VBA (QueryTables.Add), je peux filtrer mes fichiers d'entrée (suivant l'extension, le nombre de lignes,...)
Je peux relancer les requêtes automatiquement, nettoyer ma feuille excel, etc ,...

Je préfère donc continuer en VBA.
 

David73

XLDnaute Nouveau
Bonjour le fil David73, Hasco ;); bhbh

Petite question au débotté à David
Est-ce que tu as fait le test PQ que j'ai détaillé plus bas ?
(et qui se résume à moins de 10 clics) (*)
NB: Je viens de le refaire en laissant tourner l'enregistreur de macros
Et O surprise !
[X] Moi qui croyait qu'on ne pouvait pas manipuler PQ par le biais de VBA

* : une fois la requête créée manuellement, on la conserve, il n'y a plus qu'à l'actualiser.
C'est tout l'intérêt de la chose ;)

EDITION
[X] Alors là, je suis scotché
j'ai copié telle quelle la macro obtenue avec l'enregistreur de macros quand je manipulais PQ manuellement, dans un nouveau classeur.
Et comme disait Rick: "Cà roule pour moi !"
L'import est immédiat ! ;)
(testé avec 10 CSV de 100 lignes chacun)


Je fais le test avec 300 fichiers de 5 lignes chacun et l'import n'est pas immédiat (quelques secondes...)
Il est immédiat pour toi ?
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 270
Membres
103 168
dernier inscrit
isidore33