XL 2010 consolider plusieurs fichiers

ATMANI Ahmed

XLDnaute Nouveau
Bonjour
Permettez moi de vous demander de me porter assistance pour consolider ces trois fichiers TBRH1,2 et 3 dans un quatrième fichier intitulé Consolidé, sincèrement je trouver beaucoup de difficulté pour la sommation des chiffres des fichiers de fait qu'il contient chacun une vingtaine de feuilles
Je vous serai vraiment reconnaissant si vous pouvez m'orienter sur une méthode pour me faciliter le travail,
ci,joint les fichiers e question.
Merci pour votre aide

nb: les discussions dans les forums ne s'appliquent à mon cas
 

Pièces jointes

  • TBRH-DRG1-1017.xls
    835 KB · Affichages: 48
  • TBRH-DRG2-1017.xls
    835 KB · Affichages: 26
  • TBRH-DRG3-1017.xls
    835 KB · Affichages: 30
  • TBRH-DRG COSOLID-1017.xls
    835 KB · Affichages: 32

job75

XLDnaute Barbatruc
Bonjour ATMANI Ahmed, bienvenue sur XLD,

Le plus simple est de créer dans le fichier consolidation des formules de liaisons.

1) Ouvrez les 4 fichiers.

2) En D8 de la feuille TB1 du fichier consolidation il est facile de créer cette formule de liaison en sélectionnant les cellules D8 de chaque fichier source et en enlevant les dollars $ :
Code:
='[TBRH-DRG1-1017.xls]TB1'!D8+'[TBRH-DRG2-1017.xls]TB1'!D8+'[TBRH-DRG3-1017.xls]TB1'!D8
3) Par Copier-Collage spécial-Formules collez cette formule dans les plages D8: P22 et D24: P25.

4) Vous ferez des opérations similaires pour les autres feuilles du fichier consolidation.

Tout cela prendra un peu de temps mais ce sera fait une fois pour toutes.

A+
 

ATMANI Ahmed

XLDnaute Nouveau
merci beaucoup pour votre réactivité, mais cette consolidation m'est nécessaire mensuellement, le problème que j'ai que lorsque je reçois les trois fichiers des autres unités et j'introduis mon fameux fichier de consolidation il maintien les formule de l'emplacement de l'ancien dossier.
j'espère que tu m'as compris
Cordialement
 

job75

XLDnaute Barbatruc
Bonjour Ahmed, le forum,

Quelques précisions, assez évidentes, pour le fichier consolidation :

- dans toutes les feuilles le mois sera donné par cette formule unique :
Code:
='[TBRH-DRG1-1017.xls]Page'!$J$26
- dans la feuille TB15 on ne touchera pas aux formules du "Taux de réalisation"

- dans la feuille TB21 il faudra 3 tableaux, chacun pointant vers une des feuilles sources

- on n'affichera pas les valeurs zéros : menu Fichier-Options-Options avancées et décocher la case "Afficher un zéro dans les cellules qui ont une valeur nulle".

A+
 

zebanx

XLDnaute Accro
Bonjour Job75, Bonjour Ahmed, le forum

Tableaux présentés différemment, avec des sous-totaux en formule voir des chiffres liés, l'approche par des formules est pertinente et... lourde à mettre en place.
Si d'autres tableaux devaient être pris en considération, si d'autres feuilles étaient à récapituler,....

Et comme Job75 a traité le sujet, ça donne envie de s'y pencher et d'avoir son avis éclairé.

Bref, un remède en avec utilisation de VBA alternative par étapes détaillé sur des workbooks contenant x feuilles présentant des tableaux identique suivant le numéro de feuille entre tous les workbooks, je fabriquerai bien ma bonne usine à gaz.
Et en parlant d'usine à gaz, le déroulé est long mais nécessaire :

Travail préparatoire
1. Copie des 3 fichiers à déverser

2. Balayage par workbook de tous les tableaux pour identifier les cellules à formule dans les tableaux.
(MACRO 1 - exemple : .SpecialCells(xlCellTypeFormulas, xlNumbers).Interior.ColorIndex = 6).
Le range a définir est à décider sur le max ligne / max colonne de tous les tableaux mais ça importe peu car les données en "" ne sont pas prises en compte. On prendra un seul range dans la boucle et pas par tableau, que cela soit clair (!).


Normalement, il ne devrait pas y en avoir en dehors des sous-totaux mais si 2/3 valeurs par ci-par-là s'échappent, elles apparaitront (en vert) et seront forcées manuellement (avec une autre couleur pour les identifier).
(Mais c'est pour ça que j'utilise en 1 des fichiers sauvegardés).

3. Par workbook, on incorpore une feuille "recap" vierge

Travail
4. Boucle pour toutes les feuilles (worksheets.count) les données numériques (sans formule) sur la feuille recap.

(MACRO 2 : For Each cell In Range("B3:D20").SpecialCells(xlCellTypeConstants, 1))
Cette feuille comportera 4 colonnes avec récapitulatif : workbook.name (A), sheets.name(B), adresse de la cellule (C), valeur de la cellule (D) .
La boucle récapitulative ajoute après chaque dernière ligne les différentes données

Travail de conso
5.Les 4 fiches "recap" sont exportées sur le workbook final.

6.On les compile dans une même feuille (MACRO 3)

7. On trie : clé (nom feuille + adresse cellules) et on additionne les valeurs.(MACRO 4)

8. On restitue par une dernière macro dans les feuilles finales dans les cellules correspondantes à chaque feuille car en étape 7 on a bien conservé le nom de la feuille et l'adresse de la cellule (MACRO 5)
On pourrait y rajouter une colonne avec "now" (dans le fichier recap final) permettant de s'assurer que les données ont été déversées pour chaque cellule.

J'en suis pour le moment à l'étape 4 et l'étape 8 a été testé (les étapes 6 et 7 ne devraient pas poser de problème).
D'autres feuilles peuvent être insérées, toutes les données seront compilées dans la grille de suivi (RECAP).

Ca reste une bonne usine à gaz avec probablement des macros à supprimer pour compiler les données finales (étapes 5 à 7 voir une seule feuille RECAP pour l'étape 4 qui viendrait chercher les informations par Workbook).

Mais au final on a un procédé qui permet d'avoir une grille récapitulative complète (RECAP) à déverser.
Ou on préfère conserver les 452 copies de formules sur les 20 tableaux (série en cours).

Désolé d'avoir été long, surtout pour JOB75 et ses codes foudroyants mais entre ça ou répondre sur #x posts concernant l'utilisation des formules matricielles, j'espère t'avoir intéressé un peu plus...

Bon apm
zebanx
 

ATMANI Ahmed

XLDnaute Nouveau
Bonjour Job75, Bonjour Ahmed, le forum

Tableaux présentés différemment, avec des sous-totaux en formule voir des chiffres liés, l'approche par des formules est pertinente et... lourde à mettre en place.
Si d'autres tableaux devaient être pris en considération, si d'autres feuilles étaient à récapituler,....

Et comme Job75 a traité le sujet, ça donne envie de s'y pencher et d'avoir son avis éclairé.

Bref, un remède en avec utilisation de VBA alternative par étapes détaillé sur des workbooks contenant x feuilles présentant des tableaux identique suivant le numéro de feuille entre tous les workbooks, je fabriquerai bien ma bonne usine à gaz.
Et en parlant d'usine à gaz, le déroulé est long mais nécessaire :

Travail préparatoire
1. Copie des 3 fichiers à déverser

2. Balayage par workbook de tous les tableaux pour identifier les cellules à formule dans les tableaux.
(MACRO 1 - exemple : .SpecialCells(xlCellTypeFormulas, xlNumbers).Interior.ColorIndex = 6).
Le range a définir est à décider sur le max ligne / max colonne de tous les tableaux mais ça importe peu car les données en "" ne sont pas prises en compte. On prendra un seul range dans la boucle et pas par tableau, que cela soit clair (!).


Normalement, il ne devrait pas y en avoir en dehors des sous-totaux mais si 2/3 valeurs par ci-par-là s'échappent, elles apparaitront (en vert) et seront forcées manuellement (avec une autre couleur pour les identifier).
(Mais c'est pour ça que j'utilise en 1 des fichiers sauvegardés).

3. Par workbook, on incorpore une feuille "recap" vierge

Travail
4. Boucle pour toutes les feuilles (worksheets.count) les données numériques (sans formule) sur la feuille recap.

(MACRO 2 : For Each cell In Range("B3:D20").SpecialCells(xlCellTypeConstants, 1))
Cette feuille comportera 4 colonnes avec récapitulatif : workbook.name (A), sheets.name(B), adresse de la cellule (C), valeur de la cellule (D) .
La boucle récapitulative ajoute après chaque dernière ligne les différentes données

Travail de conso
5.Les 4 fiches "recap" sont exportées sur le workbook final.

6.On les compile dans une même feuille (MACRO 3)

7. On trie : clé (nom feuille + adresse cellules) et on additionne les valeurs.(MACRO 4)

8. On restitue par une dernière macro dans les feuilles finales dans les cellules correspondantes à chaque feuille car en étape 7 on a bien conservé le nom de la feuille et l'adresse de la cellule (MACRO 5)
On pourrait y rajouter une colonne avec "now" (dans le fichier recap final) permettant de s'assurer que les données ont été déversées pour chaque cellule.

J'en suis pour le moment à l'étape 4 et l'étape 8 a été testé (les étapes 6 et 7 ne devraient pas poser de problème).
D'autres feuilles peuvent être insérées, toutes les données seront compilées dans la grille de suivi (RECAP).

Ca reste une bonne usine à gaz avec probablement des macros à supprimer pour compiler les données finales (étapes 5 à 7 voir une seule feuille RECAP pour l'étape 4 qui viendrait chercher les informations par Workbook).

Mais au final on a un procédé qui permet d'avoir une grille récapitulative complète (RECAP) à déverser.
Ou on préfère conserver les 452 copies de formules sur les 20 tableaux (série en cours).

Désolé d'avoir été long, surtout pour JOB75 et ses codes foudroyants mais entre ça ou répondre sur #x posts concernant l'utilisation des formules matricielles, j'espère t'avoir intéressé un peu plus...

Bon apm
zebanx
 

zebanx

XLDnaute Accro
Bonsoir Ahmed

J'ai un problème sur le fichier de recap qui m'oblige à poster sur le site.

Néanmoins, tu peux avoir un exemple de récupération de données dans une grille à partir de 3 fichiers (sh01 à sh03) et une restitution dans 3 fichiers de destination (res01 à res03).
Reste à faire l'étape d'addition des données dans un fichier final.

Sur le fichier ci-joint, il faut d'abord regarder que les fichiers RES sont vides dans les cellules du tableau (sauf formules) puis lancer depuis RECAP les macros (recap) puis (reverse).

Seuls les chiffres (sans formules) sont copiés.

++
zebanx
 

Pièces jointes

  • fichier_dep_01.xls
    113 KB · Affichages: 37

Discussions similaires

Statistiques des forums

Discussions
312 492
Messages
2 088 925
Membres
103 984
dernier inscrit
maliko67