Bonjour a toutes et a tous!!!
Ce week end, j'ai essayer de decouvrir comment mettre en page une feuille en constante evolution. Et je crois avoir trouver la logique mais je n'arrive pas a la mettre en place....
Sur une feuille, j'ai 4 TCD disposer en dessous les un de autres. Ces TCD evoluent en fonction d'un seul critere: le marche
Evidemment, pour chaques marche le nombre d'information est different et du coup le nombre de ligne aussi.
Jusqu'a present j'ai laisser asses d'espace entre chaque tcd pour etre sur que un tcd n'empiete pas sur celui qui est en dessous.
Ce que j'aimerai c'est qu'il y est le meme espace entre chaque TCD peut importe le marche et le nombre de ligne des TCD.
Je pensais donc faire une macro qui ferai les choses suivantes:
Definir une variable pour mes TCD.
Definir par un nom la cellule ou est inscrit le titre du TCD (ex dans mon ex: affiliate selling to the market distributor)
Grace a cela la macro pourrait reconnaitre la position ( la ligne) de mes titres.
J'arrive a obtenir cette position par la formule ligne() ou en anglais pour moi, row()
Donc on resume a ce moment la j'ai
Definit mon TCD
Je sais ou il commence
Maintenant il faut calculer la taille du TCD....j'ai reussi a denicher ce petit bout de code me permettant de calculer la taille de mon tcd en entier avec la fonction TableRange2.Rows.Count
Voici le code:
Donc on sait ou il commence combien il mesure.....
A chaque changement de marche les tcd sont mis a jour (normal pour avoir la bonne information!!!)
Donc je pensais inserer un nombre de ligne important avant le changement
et ensuite supprimer les ligne en trop.
Ajouter des ligne pour ensuite les supprimer donne asses de place au tcd pour ne pas "ecraser" celui du dessous....
Alors voila la logique a laquelle je suis parvenu...mais je bloque tres sincerement pour la mettre en route.
Dans mon exemple, vous pouvez changer le marche en apuyant sur le bouton "Market" en haut a gauche de la feuille "Current_market".
Ensuite, je vous laisse le soin de parcourir les codes VBA, si jamais vous avez besoin de voir comment tout ca marche.....
Merci d'avance a ceux qui pourront m'aider...parce que la je me sens un peu seul face au souci.
Au plaisir de vous lire...
Sim
Ce week end, j'ai essayer de decouvrir comment mettre en page une feuille en constante evolution. Et je crois avoir trouver la logique mais je n'arrive pas a la mettre en place....
Sur une feuille, j'ai 4 TCD disposer en dessous les un de autres. Ces TCD evoluent en fonction d'un seul critere: le marche
Evidemment, pour chaques marche le nombre d'information est different et du coup le nombre de ligne aussi.
Jusqu'a present j'ai laisser asses d'espace entre chaque tcd pour etre sur que un tcd n'empiete pas sur celui qui est en dessous.
Ce que j'aimerai c'est qu'il y est le meme espace entre chaque TCD peut importe le marche et le nombre de ligne des TCD.
Je pensais donc faire une macro qui ferai les choses suivantes:
Definir une variable pour mes TCD.
Definir par un nom la cellule ou est inscrit le titre du TCD (ex dans mon ex: affiliate selling to the market distributor)
Grace a cela la macro pourrait reconnaitre la position ( la ligne) de mes titres.
J'arrive a obtenir cette position par la formule ligne() ou en anglais pour moi, row()
Donc on resume a ce moment la j'ai
Definit mon TCD
Je sais ou il commence
Maintenant il faut calculer la taille du TCD....j'ai reussi a denicher ce petit bout de code me permettant de calculer la taille de mon tcd en entier avec la fonction TableRange2.Rows.Count
Voici le code:
Code:
Sub compterNombreLignesTCD()
Dim Pvt As PivotTable
'Définit le TCD
Set Pvt = Worksheets("Feuil1").PivotTables("Tableau croisé dynamique1")
'TableRange2 :
'plage contenant l'intégralité du rapport de tableau croisé dynamique,
'y compris les champs de page.
MsgBox Pvt.TableRange2.Rows.Count
End Sub
Donc on sait ou il commence combien il mesure.....
A chaque changement de marche les tcd sont mis a jour (normal pour avoir la bonne information!!!)
Donc je pensais inserer un nombre de ligne important avant le changement
et ensuite supprimer les ligne en trop.
Ajouter des ligne pour ensuite les supprimer donne asses de place au tcd pour ne pas "ecraser" celui du dessous....
Alors voila la logique a laquelle je suis parvenu...mais je bloque tres sincerement pour la mettre en route.
Dans mon exemple, vous pouvez changer le marche en apuyant sur le bouton "Market" en haut a gauche de la feuille "Current_market".
Ensuite, je vous laisse le soin de parcourir les codes VBA, si jamais vous avez besoin de voir comment tout ca marche.....
Merci d'avance a ceux qui pourront m'aider...parce que la je me sens un peu seul face au souci.
Au plaisir de vous lire...
Sim