Consolidation Excel onglets multiples [Résolu/Fermé]

Signaler
Messages postés
20
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2012
-
Messages postés
20
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2012
-
Bonjour,

J'ai un petit probleme de consolidation de donnees sous Excel 2003.

J'ai des fichiers comprenant plus de 250 onglets, avec un seul tableau par onglet (fichiers créés automatiquement). Ces onglets ont des noms logiques : Table 1, Table 2, etc...

J'essaye actuellement d'utiliser la consolidation de données pour faire apparaitre sur une meme feuille toutes les données contenues dans la cellule B2 de chacun de mes 250+ onglets.

Je veux donc tout d'abord consolider en A2 d'une page vierge une premiere cellule (ex: cellule B2 de l'onglet Table 1), et ensuite adapter la formule jusqu'a A250...


Probleme : lorsque je tente de consolider les donnees (fonction Somme, et option Lier les donnees sources), Excel me dit "No Data was consolidated"... J'essaye depuis maintenant 2h de regler ce probleme, mais ça me dépasse...

Merci d'avance pour otre aide

8 réponses

Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
588
Deux solutions qui me semblent viables :

1/ Une macro avec cette syntaxe
For Numero = 1 To 250
    Range("A" & Numero + 2).Select
    ActiveCell.Formula = "='Table " & Numero & "'!$A$1"
Next Numero


2/ une formule
Dans la colonne A en mettant les nombres de 1 à 250 (en copiant vers le bas)
Mettre dans la cellule B1 la formule suivante :
=INDIRECT("'Table " & A1 & "'!$A$1")

et recopier vers le bas

A adapter peut-être

2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 76687 internautes nous ont dit merci ce mois-ci

Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
588
Bonjour,

Je n'ai pas l'habitude d'utiliser la consolidation mais j'ai déjà eu l'occasion de mettre dans une feuille des sommes de données se trouvant dans plusieurs autres feuilles et pour cela j'utilise tout simplement une formule du type :

=SOMME('Table 1:Table 250'!B2)

Cela fonctionne bien et on peut recopier la formule vers le bas et/ou la droite pour avoir les sommes des autres lignes/colonnes.

A tout hasard si cela peut aider (en espérant ne pas être hors sujet)

A+
Messages postés
20
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2012
3
Salut,


Merci de ton aide. Ta formule ne marchais pas mais cela m'a donner une idée.

Dans ma page vierge je tape ='Table 1'!$B$2 et cela m'importe les données pour l'onglet 1 cellule B2.

Seulement etant donné que Table 1 est un nom donné a l'onglet, lorsque je recopie vers le bas il ne change pas d'onglet. Aurais tu une idee? Je vais tenté en macro, mais comme je débute...


ps: je n'ai besoin QUE de la cellule B2 dans chaque onglet.
Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
588
Normalement, ma formule fonctionne si Table 1 et Table 250 sont des noms d'onglets, il somme tous les onglets se trouvant entre les deux. Sinon il faut juste adapter les noms. Cela marche même avec des noms quelconques
Messages postés
20
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2012
3
D'accord, mais le probleme est que ce ne sont pas des nombres que je veux ajouter, mais des references (lettres + chiffres) que je veux mettre en colonne sur la premiere page.
Messages postés
20
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2012
3
J'ai enregistrer cette macro :

ActiveCell.FormulaR1C1 = "='Table 1'!RC[1]"
Range("A3").Select
ActiveCell.FormulaR1C1 = "='Table 2'!R[-1]C[1]"
Range("A4").Select
ActiveCell.FormulaR1C1 = "='Table 3'!R[-2]C[1]"
Range("A5").Select
End Sub


Une idee pour l'automatiser jusqu'a Range A250 et Table 250 ?
Messages postés
16311
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
26 novembre 2020
3 079
Bonjour
sans VBA
dans A2 tu écris:
=INDIRECT("'table "&LIGNE()-1&"'!B$2")
et tu tires vers le bas pour avoir la valeur de B2 dans chaque "table"
lire
indirect(guillemet...apostrophe, ..............-1&... guillemet... apostrophe.. point d'exclamation....
si tu commences en A3 tu marques LIGNE()-2
Messages postés
20
Date d'inscription
mercredi 15 juillet 2009
Statut
Membre
Dernière intervention
27 juillet 2012
3
Merci beacuoup a vous deux.

Solution prise : la macro de Pilas, qui une fois adaptée a mon fichier a donner les resultats esperés !! Merci donc.