Macro inserer ligne, supprimer ligne en fonction taille tcd

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. :rolleyes::confused:

Au plaisir de vous lire...:D

Sim
 

Pièces jointes

  • macro mise en page.zip
    228.9 KB · Affichages: 138

sim

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

Le forum....

Je me suis mal exprimer? Que puis je faire pour vous rendre la tache plus facile........

Merci...
 
Dernière édition:

sim

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

Bonjour,

Je pensais en arrivant au boulot ce matin, qu'il y aurai une ame charitable qui aurait pu m'aider....mais rien...il y a t il quelque chose que j'ai mal expliquer, ou c'est juste impossible......

Merci en tout cas a ce qui ont pris le temps de me lire...je suis la toute la journee au cas ou mon souci est solvable pour quelau'un...

Merci bcp...

Sim
 

sim

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

Pierrot.....

deja merci pour m'avoir repondu...:)

alors comment puis je faire pour mettre en page cette feuille Current_market.....

pour que ca soit imprimable pour chaque marche, et que l'utilisateur n'est pas a utiliser le scroll pour voir les inforamtion, avec des espace de dingue entre chaque tcd.....il doit bien y avoir un moyens.....

Je pensais pourtant que ma solution aurai pu etre appliquable......
 

soune26

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

Bonjour le fofo, sim et pierrot

Sim je pensais qu'on allait pouvoir faire tous cela en VBA, ce qui aurais été beaucoup plus simple, mais je vois que tu n'as pas le temps ni l'envi de reprendre tout ton dossier.

soune26
 

sim

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

Soune26,

Bien sur que si, j'atendais tes nouvelles, je t'ai envoyer tout mon dossier hier par mail.

Mais malheureusement, je suis devant mon pc ttoute la journee et il est inconcevable que je ne fasse rien.....c'est pour ca que je me suis dit en atendant que je devais finir celui que j'ai commencer.....

Voila......

As tu vu mon dossier, qu'en penses tu??

Dans l'atente de te lire

sim

Edit: j'ai envoyer le dossier sur ton adress yahoo....
 
Dernière édition:

sim

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

Le forum,

j'aurai quand meme apprecier si on pouvait m'eclairer sur ce probleme, peut etre qu'on peut s'y prendre autrement,
en recherchant la derniere ligne remplie de chaque tcd par exemple...ou je sais pas....

Je ne dois surement pas etre le seul a vouloir mettre en page une feuille contenant plusieur tableau croise dynamique non?

Merci d'avance....


Sim
 

sim

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

Personne, personne alors?

Ca se peut pas, on peut tout faire sur excel, non????

S'il faut que je retravaille quelque chose dites le moi, je suis pret a faire tout les efforts possibles pour que cela soit faisable....

S'il vous plait....

:)

Sim
 

chris

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

Bonjour

Une solution que j'utilise c'est de laisser plein de lignes et juste masquer celle inutiles
Ainsi les TCD restent à leur place.
Il faut juste trouver la fin du plus long des TCD du haut (souvent le mot Total ou Somme le permet), sachant qu'on connait la ligne de début de ceux du bas, il n'y a plus qu'à masquer les lignes inutiles.
 

sim

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

Merci bcp pour ta reponse !!! :D

D'accord alors prenons un exemple,

Le TCd du haut "affiliate" ne depasse pas les 5 lignes,

mais parcontre ontrouve de grosse difference dans les tcd

business flow

et

factories and brands

donc comment faire pour cacher les lignes inutile sachant que leur nombre va varier a chaque changement de marche
 

chris

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

Bonjour

Exemple de code pour l'écart entre les 2 premiers de ton exemple
Code:
ActiveSheet.Rows.EntireRow.Hidden = False
lig1 = Range("B58").End(xlUp).Row + 1
Range("B" & lig1 & ":B58").EntireRow.Hidden = True

A dupliquer et adapter pour chaque écart.
 

sim

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

Re le forum, Chris

Bon alors!! lol :)

evidemment ca marche, mais dis moi si je me trompe cela ne prend pas en compte la taille du tcd du haut a droite, puisque je ne vois qu'une ligne a chaque fois.... ni du premier d'ailleur

puis qu'au final que j'ai un ou deux affiliate dans le premier tcd je ne vois que le premier...

Pourrai tu m'expliquer ton code, car en fait je ne vois pas comment il fait pour identifier le premier tcd et sa taille??

Merci bcp bcp pour ton aide!! :)

Sim
 

Statistiques des forums

Discussions
314 659
Messages
2 111 623
Membres
111 236
dernier inscrit
vinthi