Modifier les paramètre d'un taleau croisé dynamique VBA

Excusez-moi (...bientôt le we, ma semaine a été chargée), je viens de relancer la macro(avec des valeurs numériques) et effectivement les budgets sont pris en compte.

Ton ficher en retour (non optimisé).

Sous-entendez vous le fait que les graphiques ne sont pas pris en compte. C'est pour cela que vous dite "non optimisé"?

Merci pour le temps consacré à ce sujet.

Re,

Je me suis pas préoccupé des graphiques.

Si tu regardes bien, j'ai fait un copier coller de la procédure du premier TCD, avec quelques modifications.

On peut donc optimiser la procédure, mais ce n'est le plus important. !?

Cdlt.

Re,

Ah d'accord, je comprends mieux.

Je me suis pas préoccupé des graphiques.

Me conseillez-vous de faire une macro différente pour construire les graphiques ou bien de mettre chaque graphique en dessous du tcd qui lui correspond (on reste alors dans la même macro).

Sachant que dans tous les cas les graphiques seront construits sur la même feuille TCDs.

Pourriez-vous me donner la meilleure "méthode" que je puisse adopter?

Bien cordialement,

Re,

Je regarde pour la suite ce weekend.

Cdlt.

Bonjour,

Dans le fichier joint exécute la procédure CreatePivotCharts.

Tu auras un aperçu de ce qui peut être réalisé.

Cdlt.

13modele-test-1.xlsm (46.27 Ko)

Bonsoir,

Tout d'abord, je vous remercie avoir pris en considération mon problème.

Suite à votre dernier message, le résultat de la macro correspond à tout à fait à mes attentes (merci encore pour votre patience).

Donc si j'ai bien compris il est préférable de mettre les graphiques sur une nouvelle feuille?

Aussi, j'ai voulu ajouter une option à la macro en ajoutant le fait que le montant total (soit le résultat total de la somme "Réalisé en €") soit rangé par ordre croissant ce qui permettrait par la suite d'avoir le graphique du plus petit au plus grand.

J'ai donc ajouter l'option suivante dans la macro 3ème TCD. Aucune erreur ne m'est renvoyé de la part d'Excel. Pourtant, l'option ajoutée n'est pas prise en compte étant donné qu'il n'y a aucune modification sur le troisième TCD.

croissant option tcd

Voyez-vous pourquoi il ne considère pas cette nouvelle modification, svp?

Par avance merci.

Bonjour,

Voir fichier modifié pour le tri des TCDs 2 & 3.

J'ai aussi apporté des modifications au graphique 2 (GCD_2).

Cdlt.

17modele-test-2.xlsm (37.04 Ko)

Bonjour,

Nickel c'est exactement ce que je cherchais à réaliser! ^^

J'ai aussi apporté des modifications au graphique 2 (GCD_2).

J'ai vu ça, il y a un titre maintenant. Parfait!

J'ai constaté une "limite" à Excel. Pourriez-vous me dire si je me trompe?

En fait, j'ai voulu que dans mon TCD, il y ai la somme totale en colonne et en ligne (jusque là tout va bien) et j'ai voulu qu'il calcul également toujours en colonne et en ligne le total en pourcentage.

Or, mis à part de faire cela "manuellement" pour chaque tableau je ne vois pas d'autres solutions malheureusement.

Ah moins de faire une macro qui tout d'abord détermine la dernière colonne du tableau puis sur la colonne suivante calcul la colonne précédente divisé par la dernière cellule de la dernière ligne et de la colonne....

Mais je crains que cette méthode décale sur les tableaux qui suivent et engendre de ce fait des erreurs.

Je ne sais pas si j'ai été clair dans mes propos. J'ai joint en pièce jointe un exemple illustratif.

Bien cordialement,

Re,

Un exemple dans un nouveau pour ne pas perturber les graphiques.

Cdlt.

Re,

J'ai voulu automatiser cette manip' .

Aussi, vous trouverez en pièce jointe le raisonnement que j'ai effectué en fin de module.

Bien que la macro ne fonctionne pas (j'avoue ne pas comprendre pourquoi?!), le raisonnement que j'ai mené me semble tout à fait rationnel. (enfin je l'espère...)

Bien cordialement,

Re,

Voir fichier modifié pour le TCD_1.

La modification est surlignée, ci dessous.

Cdlt.

With PT
        .ManualUpdate = True
        .AddFields RowFields:="Code - Nom du groupe", _
                   ColumnFields:="Nature", _
                   PageFields:="Code poste"
        With .PivotFields("Réalisé (en €)")
            .Orientation = xlDataField
            .Function = xlSum
           .Calculation = xlPercentOfTotal
            .NumberFormat = "0.0%;[Red]-0.0%;"
            .Caption = "Réalisé (en €) "
        End With
        ' Mise en forme TCD
        .RowAxisLayout xlTabularRow
        .TableStyle2 = "PivotStyleMedium9"
        .ManualUpdate = False
    End With

Bonjour,

C'est tout à fait la formule que je recherchais!

Dans le dernier fichier que j'ai joint, je travaillais sur le fait de construire ce TCD (dont les valeurs sont en %) à côte du TCD (dont les valeurs sont en format standard).

Je vais encore travailler dessus au cours de cette journée.

Toutefois, j'aimerai juste savoir, si le fait de procéder ainsi (ie mettre deux TCD côte à côte) ne va affecter la qualité de mes données.

Excusez-moi d'insister à chaque fois si mes manipulations ne vont pas "dérégler" les autres macros qui ont permis la construction des TCD. Mais, mener des analyses sur de fausses données est juste hyper frustrant (sans parler de la perte de temps engendrée!!) !

En espérant avoir été clair dans mes explications.

Bien cordialement,

Bonjour,

La création des 2 TCDs ne pose pas de problème.

Il faut tout simplement savoir ou placer le second (dernière colonne TCD 1 + x colonnes).

Je t'envoie un exemple concret dans la matinée.

Cdlt.

Bonjour,

Je reviens sur le sujet d'associer à chaque TCD précédemment construites un autre TCD (2 colonnes plus loin) dont les valeurs sont en %.

J'ai joint le fichier sur lequel j'ai voulu réaliser cela sachant que pour commencer je suis parti avec un seul TCD (pour pas compliquer la situation). Par la suite, je souhaite bien évidemment intégrer dans la macro pour les 3 TCD.

D'(ailleurs j'appréhende mal le deuxième TCD car il faudra que je prenne en compte la ligne puisque il est en-dessous du premier et la colonne...

Bref, sur le fichier joint une erreur s'affiche comme quoi "l'objet invoqué s'est déconnecté de ses clients".

J'avoue ne pas comprendre cette erreur. Pourriez-vous svp m'en dire un peu plus?

Par ailleurs, par rapport au fichier Modele_test2 (voir 24/07). Ce fichier permettait la création des TCD + des graphes.

Or, j'ai remarqué que si je lance une première fois la macro alors tout fonctionne parfaitement.

Puis, si je supprime le contenu de la feuille "Graphiques" et que je relance la macro alors les TCD sont bien à nouveau construits en revanche les graphiques ne sont pas du tout construits !

Cela signifie implique que la macro ne peut être lancer qu'une seule et unique fois. Est-ce normal?

En vous remerciant par avance pour votre précieuse aide.

Bien cordialement,

Bon jour,

Voir fichier en retour.

Lis attentivement les procédures !!!

Cdlt.

Re,

J'ai repris la macro en l'adaptant à mes données. Du coup pour le premier TCD cela fonctionne parfaitement à un détail près.

En effet, certaines valeurs de mon tableau s'affiche en rouge d'une part et d'autre part, au niveau du tableau des pourcentages certains pourcentages sont négatifs alors que le montant associé était loin d'être négatif.

Exemple ci-dessous:

capturepourc capturebrut

Par ailleurs, j'ai joint la macro qui allie deux TCD associées au TCD %.

Ma macro fonctionne sauf qu'elle me place mon deuxième TCD en % un peu trop loin.

J'ai compris qu'elle considérait la dernière colonne celle qui a été définie auparavant qui correspondait au TCD 1 en %.

Du coup, je me suis de l'initialiser avant la construction du second TCD en %.

Mais elle ne comprend "cette RAZ".

Par avance merci pour votre aide.

Bien cordialement,

RE,

Voir fichier modifié.

Pour les nombres négatifs en rouge, voir le format nombre appliqué.

Pour ma part, je pense que le résultat est correct et que des nombres sont négatifs.

Cdlt.

Bonsoir,

Merci beaucoup pour la correction apportée à ma macro.

Dans le fichier ci-joint j'ai ajouté le troisième TDC.

Je me suis appuyé de la méthode que vous avez fait pour le second TDC.

En faite cela fonctionne sauf que je suis obligé de ré indiquer lastrow avant le TCD en %.

Sinon, il me dit qu'il impossible de construire sur un rapport existant.

Pourtant, cela n'avait posé de problème pour le TCD 2.

J'ai joint la macro avec le TCD 3, j'ai ajouté un commentaire à l'endroit où cela bloque.

Bien cordialement,

Re,

Voir fichier en retour.

Cdlt.

Re,

Si cela ne vous dérange pas, pourriez-vous svp m'expliquer pourquoi le dernier TCD en % a nécessité l'ajout d'une ligne après la dernière ligne?

Cela vient-il du fait qu'au deuxième TCD on a une ligne "filtre" et qui n'y ai pas pour le dernier TCD?

laderdesder pourcentage

Par ailleurs, je suis en train de constater que la macro Table ou la macro Chart dépend du nom de la feuille préalablement créer.

Est-il possible de contourner cela?

Je m'explique sur le pourquoi de ma question:

Jusqu'alors, par simplification, je vous présentais un fichier Excel contenant un seul tableau de données (feuille "base").

Or, mon véritable fichier contient plusieurs feuilles "base". Le nom de chacune de ces feuilles diffèrent.

Quoique leur seul point commun est qu'il se termine par Data (par exemple: feuille 1 "Lulu_Data" / feuille 2 "Water_Data" ....)

En revanche la structure du tableau de données sur chacune des feuilles reste la même. Dans le sens,où on a les même entêtes et on réalise les mêmes TCD et les mêmes graphes. De ce fait, j'appliquerai pour chacune des feuilles la même macro TCD et graphe.

Bien sûr, s'il s'avère que cela est impossible alors j'opterai pour la solution la plus laborieux.

--> Refaire la macro TCD et graphe autant de fois qu'il y a de feuilles "bases".

Encore heureux, j'ai "seulement" une dizaine de feuilles.

En espérant avoir été clair.

Merci d'avance.

Bien cordialement,

Rechercher des sujets similaires à "modifier parametre taleau croise dynamique vba"