Macro inserer ligne, supprimer ligne en fonction taille tcd

  • Initiateur de la discussion Initiateur de la discussion sim
  • Date de début Date de début

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 !

sim

XLDnaute Occasionnel
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:

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
 

Pièces jointes

Re : Macro inserer ligne, supprimer ligne en fonction taille tcd

Re,

alors j'ai lu un peu sur les variable et c'est pas encore tres tres clair pour moi....

tu les definirai comment dans ce cas la?

Du style

Code:
Dim lig1, lig2, lig3 as variable

merci
 
Re : Macro inserer ligne, supprimer ligne en fonction taille tcd

Re

En fait j'ai revérifié, tu as intérêt à te baser sur la colonne D et non B.

Pour les variables
Dim lig1, lig1a, lig1b, lig2, lig3 as integer

devrait suffire. Si tu compte dépasser la ligne 32000 déclare "As long"
 
- 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

Discussions similaires

Réponses
3
Affichages
419
Réponses
16
Affichages
702
Réponses
3
Affichages
393
Réponses
3
Affichages
248
Retour