Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Obtenir des données d'un TCD

bep

XLDnaute Nouveau
Bonjour à tous,

Je travail actuellement sur un outil de reporting en excel.

Contexte: Dans le cadre d'améliorer le quotidien des personnes qui l'utilisent, j'ai modifié un fichier excel qui permet de formatter des données sous forme de tableaux croisés dynamiques. J'ai environ 2500 lignes données à triées par mois pour effectuer differents tests et regroupement sur ces données.

Problème: En m'inspirant de l'exmple fournit par Dan (Lire des données dans un Tableau Croisé Dynamique), J'ai reussi à sortir une partie des données que j'avais besoin. Néanmoins, les données que j'ai dans un top 5, je n'arrive pas à les sortir car je ne peux pas utiliser un terme fixe dans la fonction.

Exemple:
J'utilise cela pour sortir mes données du tableau général
=LIREDONNEESTABCROISDYNAMIQUE(TCD;"Total")
Mais le terme Total ne peux pas etre appliquer sur le tableau récapitulatif du top 5 car j'ai besoin de recuprer le terme Z_summary_short 1, 2, 3, 4 et 5 ainsi que les totaux associé a ces termes.

Info complémentaire:
Je ne peux joindre mon tableau car mon fichier excel fait environ 30 Mo et je n'arrive pas a decendre en dessous des 80Ko avec une capture ecran (Merci paint )
Mon tcd a:
pour donnée : nombre_de_z_summary_court
en entrée ligne : z_summary_court (que j'aimerai recuperer), assign_to_group (qui me donne une precision sur qui a fait quoi), et donnée (qui me permet d'avoir un total de z_summary_court et un % du total de z_summary_court)
en entree colonne : plein de choses pas forcement importantes ici.

Merci d'avance.
 

bep

XLDnaute Nouveau
Re : Obtenir des données d'un TCD

RE chris,

J'arrive a récupérer (sauter les valeur qui me gene :
Code:
=SI(ESTVIDE(DECALER('Bilan Mois'!$AI$12;EQUIV(GRANDE.VALEUR(Valeurs;2);Valeurs;0)-1;0;1;1));
SI(ESTVIDE(DECALER('Bilan Mois'!$AI$12;EQUIV(GRANDE.VALEUR(Valeurs;3);Valeurs;0)-1;0;1;1));
SI(ESTVIDE(DECALER('Bilan Mois'!$AI$12;EQUIV(GRANDE.VALEUR(Valeurs;4);Valeurs;0)-1;0;1;1));
SI(ESTVIDE(DECALER('Bilan Mois'!$AI$12;EQUIV(GRANDE.VALEUR(Valeurs;5);Valeurs;0)-1;0;1;1));GRANDE.VALEUR(Valeurs;6);GRANDE.VALEUR(Valeurs;5));GRANDE.VALEUR(Valeurs;4));GRANDE.VALEUR(Valeurs;3));GRANDE.VALEUR(Valeurs;2))
avec cette formule
Elle me permet de zapper les nombres qui ont une zone blanche en debut et qui ne sont donc pas à prendre en compte.

Par contre, cela ne fonctionne pas sur cette ligne la :
30 >Afficher
---
30 >>> Total du dessus (Afficher)
===
car il passe a la valuer d'apres s'en afficher celle dont j'ai besoin.

Je continue sur cette piste.
 

chris

XLDnaute Barbatruc
Re : Obtenir des données d'un TCD

Bonjour

J'avais trouvé une solution pour ton 2ème TCD mais je n'arrivais pas à résoudre le problème des ex-equo, alors que c'est faisable sur le 1er.

Après avoir tourné en rond et retourné le PB dans tous les sens, je me suis dit que c'était d'autant plus énervant qu'avec Access j'aurais fait cela en 2 minutes avec une requête.

Et là, bah oui mais c'est bien sûr, l'étincelle : pourquoi ne pas faire une requête dans les données de ta feuille pour avoir le top 5 ?

Aussitôt pensé, aussitôt fait : la requête (visible en SQL seulement) ne passe pas par le TCD et fait le top 5 sur les données sans être incommodée par les ex-equo.

Il faut, je pense que MSQUERY soit installé.

Ci-joint le résultat.
 

Pièces jointes

  • TCD_top5.zip
    14.7 KB · Affichages: 31

bep

XLDnaute Nouveau
Re : Obtenir des données d'un TCD

Merci chris ça a l'air de fonctionner à merveille.
Je ne peux malheureusement pas tester car je n'arrive pas à accéder à MSQUERRY ce qui est étonnant car je peux le faire sur mon fichier.

L'informatique a ces mystéres que l'on ne peut résoudre ...

Je jeterai un oeil ce soir de chez moi.

Merci pour cette solution qui me parrait la mieux adaptée à mon problème.
 

chris

XLDnaute Barbatruc
Re : Obtenir des données d'un TCD

Re

Quand tu dis ne pouvoir accèder à Msquery : quel message as-tu ?
Moi il me prévient que la requête ne sera pas affichée en mode assistant mais j'accède. Je testerai sur un autre PC pour voir.

Mais je crois que c'est la meilleure solution si on connait un peu le langage de requête.
 

bep

XLDnaute Nouveau
Re : Obtenir des données d'un TCD

Il me dit [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.

Mais, je trouve cela bizarre car je peux modifier ma requete sur mon fichier les données que je place dans mon tableau je les récupére d'une requete SQL.
 

chris

XLDnaute Barbatruc
Re : Obtenir des données d'un TCD

Re

En fait il enregistre dans le sql le chemin en dur et comme ton fichier n'est pas au même endroit chez toi que chez moi...
Voici le code de la requête :
SELECT top 5 `donnée$`.Z_SUMMARY_SHORT, Count(`donnée$`.CATEGORY) AS Lignes FROM `M:\tempo\TCD_top5`.`donnée$` `donnée$` GROUP BY `donnée$`.Z_SUMMARY_SHORT ORDER BY Count(`donnée$`.CATEGORY) DESC

Attention aussi au nom de la feuille

Je ne sais pas si cela passerait en chemin relatif : MS est un peu lourd de ce point de vue.
 

bep

XLDnaute Nouveau
Re : Obtenir des données d'un TCD

Chris,

Une question me taraude
Comment fais tu pour créer ta requête qui interroge les données de la feuille excel ? Je dois la créer sous MSQuerry ? Y a un truc qui m'echappe la
 

chris

XLDnaute Barbatruc
Re : Obtenir des données d'un TCD

Bonjour
Menu Données
Données externes
Sélectionner Excel dans la fenêtre, décocher éventuellement pour ce cas l'assistant
Selectionner le fichir Excel en cours
Puis dans la fenêtre MSQUERY cliquer sur le bouton SQL pour saisir la requête.
 

bep

XLDnaute Nouveau
Re : Obtenir des données d'un TCD

Sélectionner Excel dans la fenêtre
Ok je comprend mieux dans la mesure ou je n'avais pas cette option sur mon poste, je ne risquais pas de trouver...

Mais sur un autre poste avec une version d'Excel un peu plus ancienne cela fonctionne bien.

Merci beaucoup pour ta patience Chris.

Juste pour confirmation le terme "donnée$" dans la requete correspond bien à la feuille qui contient les données non ?
 

chris

XLDnaute Barbatruc
Re : Obtenir des données d'un TCD

Re
Oui mais il ajoute $ au nom.

Quelle Excel as-tu ? 2007 ?
Mets le dans ton profil.

Je vais regarder, cela doit être caché quelque part dans 2007 que je commence à explorer.
 

bep

XLDnaute Nouveau
Re : Obtenir des données d'un TCD

non j'ai OFFICE 2003 FR sur mon poste de travail mais je suis limité avec pas mal de chose sur ce poste: je n'est pas la MSQuerry par exemple, je ne peux pas executer de requete etc.

Je passe sur un autre poste en remote pour pouvoir exécuter mes requetes, mettre à jour mes fichiers etc. Ce poste à OFFICE 2000 EN qui est assez déroutant lorsque je passe de l'un a l'autre.
Exemple, je viens de rajouter 5 TCD dans mon fichier, sur mon poste distant il me met "Not Enough memory to refresh data" que du bonheur

Mais on fait avec ce que l'on a...
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…