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("B320").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