Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
Je souhaiterais ajouter une fonctionnalité à mon TCD, compter les valeurs uniques d'un champ.
Il me semble avoir vu kkpart que ça n'était pas possible.
(Si ce n'est pas le cas, ça m'éviterai le problème ci dessous ?)
J'ai donc eu l'idée d'écrire une macro qui va le faire.
Bref j'ai donc utilisé : Workbook_SheetBeforeDoubleClick
Mais je ne crois pas que l'objet target soit lié au TCD.
(Si ce n'est pas le cas, ça m'éviterai le problème ci dessous ?)
Je suis donc passé par une boucle de ce type :
Code:
For Each r In sheet.PivotTables(1).RowFields("Famille 2").PivotItems
If r.LabelRange.Row = target.Row Then
Famille2 = r.name
Exit For
End If
Next r
Le problème c'est que cela ne fonctionne que si Famille 2 est développé, car dans ce cas "LabelRange" n'existe pas.
Comment puis-je savoir qu'un item ligne est développé ?
De plus la fonction ci-dessus ne fonctionnera plus s'il y a pls Famille2, dans une Famille1, est il possible de connaitre l'étendu de LabelRange ?
Bonjour
Si on peut compter les valeurs uniques d'un champ, le plus simple étant d'ajouter une colonne à la base de données pour cela. Ce serait bien plus facile de t'aider si tu joignais un bout de fichier anonymisé en cliquant sur mode avancé puis sur le trombone.
Dans 2010 il faut ou bien une formule dans la source comme indiqué par Misange ou bien PowerPivot.
Dans 2013 PowerPivot est intégré et la solution passe aussi par là.
Oui j'avais trouvé des astuces pour compter les valeurs uniques en ajoutant une colonne dans le tableau de base.
Malheureusement cette colonne ne va pas permettre de calculer les valeurs uniques suivant quel ligne est développé.
Malheureusement je travail sur un PC d'entreprise, impossibilité d'utiliser PowerPivot.
Je m'occupe de créer un fichier anonymisé et je vous envoi cela dans la journée !
Merci!
EDIT : En PJ un fichier anonymisé.
Comme vous pourrez le voir, j'ai commencé a ecrire kkchose pour obtenir le nb de fournisseur, en passant par la création d'un onglet (similaire au double clic sur un TCD). Cf le double clic sur une valeur d'une colone NbFact.
On peut tout à fait compter les valeurs uniques suivant d'autres critères mais comme tu ne dis pas ce que tu veux compter comme critère, c'est difficile de t'aider
par exemple
=SI(SOMMEPROD(($A$2:$A2=A2)*($D$2:$D2=D2))>1;0;1)
met 1 sur la ligne la première fois qu'une valeur nouvelle pour les deux critères des colonnes A ET D apparait, 0 si c'est un doublon sur ces deux critères. Tu peux bien entendu ajouter des paramètres à cette formule pour chercher les doublons sur X critères simultanés.
Tu fournis un TCD qui ne doit pas être ce que tu cherches sinon tu ne poserais pas la question mais tu ne montres pas le TCD que tu voudrais avoir.
En effet je n'etait peut pas très explicite sur ce que je cherche à faire.
Qui je pense est relativement compliqué en fait....
J'ai copié en dessous du TCD actuel ce que je cherche à faire.
Ca sera certainement plus clair.
En espérant qu'il y aura une solution.
Donc en effet ta formule m'irai (déplacer sur al colonne F et G), si dans le TCD je n'était pas ammené à réduire la famille 1.
Puisquelle me compte sur le critère Famille 1 et Famille 2, en réduisant le champs je ne voudrais compter que sur le critère de famille, et cela dans la même colonne. (Afin de rester dans la logique du TCD)
On compte le nombre de fournisseur (colonne D) pour une même entreprise (colonne A), ET une même famille 1 (col F) ET une même famille 2 (col G).
Donc je pourrais utiliser :
Cette formule fonctionnerai correctement dans le TCD quand la famille 1 serait développé.
Seulement si on réduit le champ Famille 1 (on cache les famille 2) il n'a donc pas lieux de faire le filtre sur la famille 2.
Si on se sert de la même formule qu'au dessus, si on a:
Frs 1 dans la famille1=A/famille2=C
mais aussi Frs1 dans la famille=A/famille2=D
Ben le nombre de fournisseur fera 2, alors qu'il n'y en a qu'un seul.
Cf l'exemple ci-dessous qui illustre le fait que la formule complète ne fonctionnerai pas :
EDIT : J'ai remis le fichier exemple en ayant inclus la formule ci-dessus, et mis en surbrillance les cases qui ne vont pas.
Dans ce cas il te faut deux indicateurs "uniques" différentes, un qui tienne compte de la famille 1 et de la famille 2 pour les uniques et l'autre qui ne tienne compte que de la famille 1. Tu peux faire alors deux TCD développés et réduits sur les familles. Ou alors un seul mais avec les deux indicateurs.
Oue c'est bien ce que j'avais peur.
Donc ca va me faire 4 colonnes avec des formules de ce genre.
Car effectivement la tu parles de l’agrégation famille2 dans famille1 mais y'a le meme soucis avec l'agregation des entreprise colonne 1.
La solution d'un 2° TCD
Etant donné que je suis justement (cf un autre post auquel tu as participé 😀) dans le cadre d'un fichier extremement lourd en ligne, et en TCD graphique, j'essaye de reduire au maximum le nombre 😀
EDIT : Et qui plus est ca ne changera pas le problème indiqué en Rouge dans mon post d'avant, car les colonnes de droites ne font qu'effectuer la somme de la ligne. Donc la solution que j'avais trouvé c'est de ne pas l'afficher directement dans le tableau mais dans une msgbox qui s'ouvre en double cliquant.
D'où mon interrogation qui a donné le nom à mon topic :
Lien entre le Target de la routine DoubleClick, et position dans le TCD ?
Si il n'y en a pas, ce que je pense, j'ai commencé à écrire kkchose, mais il me manquerait juste une information me permettant de savoir si un PivotItem est Développé ou Réduit ?
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD