récupérer automatiquement des valeurs de cellules de multiples fichiers

oliverh

XLDnaute Nouveau
Bonjour,

je souhaite récupérer des contenus de cellules de multiples fichiers excel (plusieurs centaines) automatiquement dans un nouveau fichier.

Voici le détail de l'opération :

J'ai créé un modèle comprenant plusieurs feuilles; sur la première feuille nommée "Infos", j'ai en B8 le code (4 caractères) de mon fichier, en B10 trois lettres codifiant le "prescripteur", en B11 trois lettres codifiant un "destinataire", en B13 la date de mon intervention et en F8 le montant de ma facture.

(Les autres feuilles sont des feuilles de calcul et de rédaction de rapports liées à mon activité et ma facture)

Depuis quelques années, j'ai réalisé quelques centaines de fichiers avec ce modèle, regroupés par années dans des dossiers "2010", "2011", "2012" ... Ces fichiers ont des noms différents, mais commencent tous par un code de 4 caractères : 9xxx pour 2009, Axxx pour 2010, Bxxx pour 2011, où xxx est le numéro d'ordre (001 pour le premier de l'année)

Aujourd'hui, je voudrais créer un fichier indépendant qui liste ces différentes informations à raison d'une ligne par fichier "source" ("code", "prescripteur", "destinataire", "date", "prix facturé"), afin de pouvoir faire un tableau de bord et quelques statistiques ...

Mes fichiers professionnels sont souvent assez "lourds" (tableaux du genre 30 colonnes et 1500 lignes, avec extractions de données par fonctions et renvoi des résultats dans plusieurs feuilles, etc ...) et peut-être n'est-on pas obligé de les ouvrir ??

Il y a quelques années, j'avais utilisé une macro complémentaire qui m'inscrivait automatiquement ces données dans un fichier indépendant lors de chaque enregistrement, mais ça ne fonctionne plus aujourd'hui et j'ai toujours le message "Impossible d'ouvrir l'Assistant Modèle".

Il faut donc que je passe à autre chose

Bien que passionné de programmation il y a de nombreuses années (j'ai commencé le Basic avec un Sinclair ZX 81 puis réalisé de multiples petits programmes en BasicA, MS Basic, etc ...) je n'ai jamais trouvé le temps et l'interlocuteur pour apprendre les rudiments du Visual qui m'auraient permis de tenter de faire ça moi-même ...

Raison pour laquelle j'aurais besoin d'un p'tit coup de main sur ce coup là .....

Merci
 

pyfux

XLDnaute Occasionnel
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Bonjour,

Pouvez-vous nous mettre en téléchargement un fichier modèle en précisant pour chaque colonne de destination l'emplacement de la donnée source?

Nous verrons alors ce que l'on peut faire.

pyfux
 

Jam

XLDnaute Accro
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Salut Oliverh, Pyfux,

Il y a (à ma connaissance) 2 manières de procéder:
- La première consiste à ouvrir chaque fichier Sources pour copier les données et les coller dans le classeur Destination.
- La seconde consiste à requêter chaque fichier Source et rapatrier les données dans le classeur Destination via ADO

Le choix d'une des deux méthodes sera surtout liée au poids des fichiers à ouvrir. S'il sont lourds, la première méthode peut s'avérer (beaucoup) plus longue.

Je joins un fichier qui ouvre séquentiellement tous les fichiers d'un même répertoire (il faudra implémenter le parcours des sous-répertoires), puis parcours tous les onglets et récupère les données.
La feuille accueil comporte 2 boutons: le premier sert à sélectionner le répertoire à requêter, le second à lancer la mise à jour.

Je te ferai parvenir dans un autre post la version ADO.

Bon courage

PS./ Ah, ce bon vieux ZX81 de vieux souvenirs que tu éveilles en moi :D
 

Pièces jointes

  • Fichier Synthèse.xls
    51 KB · Affichages: 518

oliverh

XLDnaute Nouveau
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Bonjour,

Pouvez-vous nous mettre en téléchargement un fichier modèle en précisant pour chaque colonne de destination l'emplacement de la donnée source?

Nous verrons alors ce que l'on peut faire.

pyfux

Merci,

Voici un extrait de fichier (la première feuille qui contient les infos que je souhaite extraire pour créer une base de données excel dans un fichier à part)
 

Pièces jointes

  • extrait1.xls
    19.5 KB · Affichages: 221
  • extrait1.xls
    19.5 KB · Affichages: 215
  • extrait1.xls
    19.5 KB · Affichages: 223

oliverh

XLDnaute Nouveau
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Salut Oliverh, Pyfux,



Je joins un fichier qui ouvre séquentiellement tous les fichiers d'un même répertoire (il faudra implémenter le parcours des sous-répertoires), puis parcours tous les onglets et récupère les données.
La feuille accueil comporte 2 boutons: le premier sert à sélectionner le répertoire à requêter, le second à lancer la mise à jour.

Je te ferai parvenir dans un autre post la version ADO.

Bon courage

PS./ Ah, ce bon vieux ZX81 de vieux souvenirs que tu éveilles en moi :D


Saperlipopette !!!

Mais ça marche !

Je viens de récupérer en quelques secondes les infos figurant dans environ 120 fichiers, juste pour faire un test ...

Par contre, je n'ai pas encore pris le temps de comprendre, au cas où je voudrais "repêcher" d'autres infos figurant éventuellement sur d'autres feuilles.

C'était génial, le ZX 81, pour apprendre le Basic. Par contre maintenant je suis largué ! J'étais habitué à numéroter les lignes, et surtout je n'étais pas habitué à déclarer les variables, raison pour laquelle j'ai un peu de mal à démarrer en VBA ... Je ne sais jamais comment commencer.

Merci beaucoup, Jam
 

Jam

XLDnaute Accro
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Content d'avoir rendu service :cool:

Si tu veux comprendre le code je l'ai pas mal documenté (les lignes en vert) ce qui devrait déjà t'aider.
Tu peux aussi lancer le programme en mode Pas à Pas: tu cliques sur le titre de la procédure et tu appuies sur {F8}. Le programme va se dérouler ligne à ligne. Si tu veux "lire" le contenu des variables affiches la fenêtre "Variables locales" dans le menu Affichage de l'IDE. Tu verras les valeurs qu'elles prennent au fur et à mesure de l'avancée du programme.
Si tu as deux écrans, place l'IDE sur un écran ceci te permettra de voir le déroulement dans Excel sur un écran et le déroulement du programme sur l'autre.

Pour le Basic, il n'y a pas tant de différence que cela avec Visual Basic. Tes bases te servirons si tu souhaites t'investir un peu dedans.
Deux points essentiels à retenir par rapport au Basic: les procédures et les objets. C'est ce second aspect qui sera le plus compliqué à comprendre. Quand je suis passé du QBasic au VB c'est sur ce point que j'ai le plus souffert.
La déclaration de variable n'est pas obligatoire, mais très fortement conseillée car elle permet de bien contrôler le type et l'utilisation des variables afin d'éviter des erreurs en tout genre.
Je ne sais jamais comment commencer
Oui, au début je ne savais pas non plus comment commencer. C'est justement parce qu'on parle d'objet (une feuille, une cellule, un classeur, Excel,...sont tous des objets qui ont des propriétés et des méthodes à même de déclencher le lancement d'un bout de code).

Si tu veux de former "facilement" tu peux te rendre là: Vos premiers pas dans l'diteur de macros Excel et te promener dans les différents tutos qui sont extrêmement bien fait.

Bon courage pour la suite et t'inquiète pas pour les cassettes, y'en a plus besoin ;););)
 

oliverh

XLDnaute Nouveau
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Merci Pyfux et Jam,

l'autre difficulté de l'apprentissage du VBA - et non des moindres - c'est de dégager du temps pour pouvoir s'immerger un bon moment ...

Jam, c'est bon pour les cassettes, je les ai rangées. J'avais aussi fait l'acquisition d'une énorme mémoire externe de 64 Ko pour suppléer au 3 Ko du ZX ...!!! ;)
 

Spinzi

XLDnaute Impliqué
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Bonjour le fil,

cette conversation m'a l'air interessante mais je suis vraiment un novice en VBA.
Lorsque que j'ouvre ton fichier Jam et que je veux sélectionner mon repertoire : il n'affiche aucun fichier excel !
Du coup je voulais tester cette compilation, mais impossible ... Une idée ?

Merci d'avance
 

Jam

XLDnaute Accro
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Salut Spinzi,

C'est normal, l'objet n'est pas de sélectionner un fichier mais un répertoire ;) car le programme parcours TOUS les fichiers du répertoire sélectionné et les ouvre s'il s'agit de fichiers XL.

Cdlt,
 

Spinzi

XLDnaute Impliqué
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Ok, donc si j'ai bien compris, ma stupidité me permet de dire qu'il y une différence entre un ammoncellement de dossier qu'on appelle couramment "Répertoire" et un dossier/fichier type répertoire ? j'ai du mal à saisir la différence ... :confused:
 

Jam

XLDnaute Accro
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Re Spinzi,


Point de stupidité là :eek:
Le programme utilise la même boîte de dialogue pour choisir un répertoire ou choisir des fichier. Dans mon programme j'ai opté pour le répertoire. Par conséquent la boîte de dialogue n'affiche aucun fichier, même s'il y en a, uniquement les dossiers et sous-dossiers. Il faut choisir le répertoire dossier qu'on veut analyser. C'est tout. Le programme se charge ensuite de lire les fichiers Excel que le dossier choisi comporte. Aussi simple que cela.

Répertoire = Dossier
Dans un répertoire tu as des sous-dossier/sous-répertoire et des fichiers.

Cdlt,
 

oliverh

XLDnaute Nouveau
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Ben mince !

ça ne marche plus !

pourtant ça a fonctionné du premier coup l'autre jour ...

Là, j'ai copié le "fichier synthèse" sur mon bureau, je l'ai ouvert, j'ai choisi un dossier nommé pour essai situé sur le bureau et contenant des documents excel et pdf, puis j'ai lancé la synthèse et .... pof ! ... rien !!

s' qu'y s'passe ???
 

Jam

XLDnaute Accro
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Salut Oliverh,

Faute de temps je n'ai pas mis les pieds sur le forum. Je m'aperçois donc que tu as eu des problèmes. Sont-ils résolus ?

Cdlt,
 

oliverh

XLDnaute Nouveau
Re : récupérer automatiquement des valeurs de cellules de multiples fichiers

Bonjour Jam,

ben non ... je ne comprend pas pourquoi ça a marché du premier coup l'autre jour et maintenant pfffuit ! ... plus rien ...

je n'ai pas l'impression d'avoir modifié quoi que ce soit, j'ai même "re-téléchargé" la macro grâce à ton lien, mais rien y fait. Même chose que Spinzi.

Un peu de boulot ch... t, tout de suite, fait que je ne suis pas très dispo non plus...
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 165
Messages
2 085 880
Membres
103 009
dernier inscrit
dede972