Lire dans un fichier sans l'ouvrir

davidm

XLDnaute Nouveau
Bonjour,

Peut on recupérer des données d'un fichier sans l'ouvrir au préalable ?

Merci de votre aide

Davidm
 

LPandre

XLDnaute Impliqué
Re : Lire dans un fichier sans l'ouvrir

Euh... bien sur que l'on peut, il suffit de mettre une formule du type :
=+ chemindufichier/nomdufichier!a4 (par exemple)
au pire excel demandera s'il faut mettre à jour les liaisons.
Sauf preuve du contraire bien sur.
@+
 

davidm

XLDnaute Nouveau
Re : Lire dans un fichier sans l'ouvrir

Re tout d'abord merci de m'avoir répondu.

En fait j'ai une macro qui va rechercher des données dans plusieurs fichiers et à terme ce nombre de fichier sera important (voir tres important : 1000 / 2000).

Pour le moment le temps d'exécution est acceptable mais il ne le sera pas forcement dans 1 ou 2 mois.

Je cherche donc a gagner du temps sachant que ce qui prend du temps c'est d'ouvrir et de fermer les fichier malgrès le fait que j'ai désactivé l'affichage.

Voila

Avez vous une idée?

Davidm
 

MJ13

XLDnaute Barbatruc
Re : Lire dans un fichier sans l'ouvrir

Bonjour à tous

Davidm, ta question est assez vaste puisque tout dépend de plusieurs facteurs comme la taille de chaque fichier à ouvrir, le nombre de données à récupérer.
Tes données sont elles comme une feuile de type txt avec des champs et des données.

Il faudrait nous en dire plus sur l'organisation et le but de ton programme.
Sinon pour aller plus vite, en général, on travaille sur des fichiers de différents types (BD, XLS, TXT, DBF...) Puis on lance des requêtes (en général de type ODBC). Tu peux enregistrer ces requêtes avec \Données \Données externe \Créer une requête. Puis tu adaptes le code généré en fonction de ce que tu veux récupérer.

Mais bon, la cela demande un peu de programmation.
 

davidm

XLDnaute Nouveau
Re : Lire dans un fichier sans l'ouvrir

Ok je vais essayer d'etre plus explicite (c'est pas dis que j'y arrive ;)

J'ai créé un fichier "Synthese" qui va récupérer des données contenues dans plusieurs fichiers excel. Ces données sont sous forme de tableau. Mon programme me permet donc d'ouvrir chaque fichier excel, de selectionner l'ensemble de tableau (qui peut etre variable mais je pense que ca ne dépassera pas 100 lignes) et d'aller le coller dans le fichier synthese qui me sert de grosse base de donnée. (Taille des fichiers = 200Ko donc tres peu)

Les données sont de type texte, nombre et date.

Je vais ensuite appliquer d'autres codes sur cette base mais la n'est pas le probleme.

En fait, j'ai deux points bloquants :

1° ) le temps d'exécution : ouvrir 10 fichier ne pose pas de probleme mais 1000 ....
C'est pour cela que je cherche à récupérer les données sans ouvrir les fichiers excel sachant que le fait d'ouvrir le fichier doit prendre 99 % du temps d'exécution de la macro.

2°) Le nombre de ligne de la feuille excel qui est limitée à 65536 lignes, je pense donc à sauvegarder les données dans une variable tableau mais dans ce cas je ne garderais pas les informations si je ferme le classeur. Cela ne poserais aucun probleme si le temps d'exécution était inférieur à quelques secondes mais ce ne sera pas le cas les mois à venir. On en revient donc au probleme N°1.

Voila je ne sais pas si c'est clair mais si vous avez des idées, je suis preneur.

Davidm
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Lire dans un fichier sans l'ouvrir

Re bonj

Attention tout de même si ton fichier dépasse les normes (1000 fichiers de 200 Ko), il vaut peut-être mieux aller vers un SGBD.

Et c'est la le problème, il vaut mieux réfléchir avant qu'après!
 

davidm

XLDnaute Nouveau
Re : Lire dans un fichier sans l'ouvrir

Bonjour,

oui je suis d'accord mais ils ne veulent pas utiliser d'autres logiciels.

Excel est une contrainte.

Est ce possible de lire un fichier sans avoir à l'ouvrir? est ce que passer par un tableau virtuel diminuerait le temps d'exécution ?

Davidm
 

MJ13

XLDnaute Barbatruc
Re : Lire dans un fichier sans l'ouvrir

Bonjour David

Ok mais bon, il faudrait nous joindre quelques fichiers types sans données confidentielles zippé faisant moins de 48 Ko (il suffit juste d'avoir queqlques lignes), ainsi que ton fichier de synthèse.

Ensuite ce sera plus facile pour te donner les pistes à suivre.
 

davidm

XLDnaute Nouveau
Re : Lire dans un fichier sans l'ouvrir

Re

Voici tout d'abord le fichier synthese (puis dans le message suivant le fichier a dupliquer autant de fois que nécessaire --> il m'interdit de les envoyer en ZIP, je ne comprend pas)


Le code est très épuré mais c'est juste pour vous montrer que le temps d'exécution dépend du nombre de fichier à ouvrir.


Merci
 

Pièces jointes

  • Synthese.xls
    48 KB · Affichages: 226
  • Synthese.xls
    48 KB · Affichages: 241
  • Synthese.xls
    48 KB · Affichages: 240
G

Guest

Guest
Re : Lire dans un fichier sans l'ouvrir

Bonsoir David,

Voici un exemple avec ADO
La connexion au fichier peut-être lente la première fois mais ensuite, c'est rapide. Mais je ne gage pas sur 1000 fichiers

Attention: dans ton fichier à dupliquer le nom de la feuille à 3 S (esssai)

A bientôt
 
Dernière modification par un modérateur:

davidm

XLDnaute Nouveau
Re : Lire dans un fichier sans l'ouvrir

Bonjour et merci de m'avoir répondu.

Je viens de tester et la solution de HASCO à l'air tres rapide (en boucle 1000 fichiers en 1min alors qu'il me fallait presque 8 minutes avec mon code)

Par contre je ne comprends pas forcement tout et c'est pour cela que je sollicite à nouveau votre aide.

1°) Je souhaite exporter les données de chaque fichiers excel d'un onglet bien précis mais qui ne porte pas systématiquement le meme nom. Il faut donc que je rajoute dans le code que le nom de l'onglet ne doit pas etre feuil1, feuil2, feuil3 ou Listes. Mais je ne sais pas ou le mettre.

2°) Comment faire pour lui dire de copier uniquement les lignes dont la date est supérieur à 2007 par exemple (date qu'on mettrait sur la feuille Sommaire en cellule A1 par exemple) et qu'il recopie que les valeurs des colonnes 1 et 3

Voila merci de votre aide parce que la j'ai un peu de mal.

Davidm
 
Dernière édition:

Discussions similaires

Réponses
5
Affichages
346
Réponses
8
Affichages
405

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz