eclater un tableau croise dynamique

  • Initiateur de la discussion Initiateur de la discussion ike667
  • 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 !

ike667

XLDnaute Nouveau
bonjour,

comme je sèche sur ce problème, je m'en remet a vous:

en fait mon problème est le suivant: je souhaite mettre les différents occurrences du champ PivotField dans la même page.
la fonction ActiveSheet.PivotTables("tcd").ShowPages PageField := "UFSERV"
fait une chose quasi similaire car elle crée une page par occurrence. je veux toutes les occurrences dans la même page.

si vous avez des idées pour le faire ???

merci d'avance.

Michael
 
Re : eclater un tableau croise dynamique

Bonjour Ike,

là en l'état, pas d'autre solution à te proposer...je me suis déjà servi de cette macro, et pas rencontré ce problème...

Peut être que quelqu'un d'autre aura une idée...

bonne fin d'après midi.
@+
 
Re : eclater un tableau croise dynamique

re,

ça marche j'ai le bon nombre d'items
maintenant, je dois faire ma boucle pour "éclater le tableau croise" et la ... aie,aie,aie

petite question:
comment repérer la fin d'un tableau ( bien évidement ils sont de longueurs variables... 🙂) ?


cordialement,
Michael

ps: un grand merci pour tout l'aide que tu m'apportes.
 
Re : eclater un tableau croise dynamique

Re

pas sur de ne pas être à coté de la question, mais si au moins la dernière ligne d'une colonne de ton tcd est systèmatiquement renseignée, tu peux utiliser le code ci dessous :

renvoie dans la variable i le numéro de la dernière ligne.
Code:
i = Range("A65536").End(xlUp).Row

@+
 
Re : eclater un tableau croise dynamique

Re

pour selectionner la dernière cellule d'un TCD :

Code:
Dim x
Sheets("Feuil1").PivotTables(1).PivotSelect "", xlDataAndLabel
x = Split(Selection.Address(0, 0), ":")
Range(x(1)).Select

tu peux bien évidement, renvoyer l'adresse dans une variable.
@+
 
Re : eclater un tableau croise dynamique

bonjour,

2 petites questions aujourd'hui:

1/ je voudrais récupérer la valeur de l'item et la j'ai une erreur : voici la ligne que j'ai écrite
nomItem = ActiveSheet.PivotTables("tcd").PivotFields("UFSERV").PivotItems.Item(i).name

et ça me marque : impossible de lire la propriété PivotTables de la classe worksheet.

2/ je voudrais renommer les tableaux dynamiques: ils s'appelle tableaudynamique5,... et je voudrais leur donner un autre nom.

merci par avance.
cordialement,
Michael
 
Re : eclater un tableau croise dynamique

Bonjour Ike

ta 1ère question :

Code:
Sub test()
Dim i As PivotItem, nomItem As Variant
With Sheets(1)
    For Each i In .PivotTables(1).PivotFields("UFSERV").PivotItems
        nomItem = i.Value
    Next i
End With
End Sub

ta 2ème question, par le code :

Code:
Sheets(1).PivotTables("tcd").Name = "toto"

sinon click droit dans le tcd => options et tu changes le nom.

bon après midi
@+
 
Re : eclater un tableau croise dynamique

rebonjour,

je touche au but,

je boucle bien et je crée tous les différents tableaux dans la même page au lieu qu'il soit dans les différents onglets.

mais il me reste un petit problème:
je voudrais effacer tous les tableaux créés en plus quand je change de service?
( avant la sélection la création du tableau croise)?

si je prend la fonction que tu m'as donne est-ce que ça va m'effacer tout le reste de la page ( il peux y avoir 15 tableaux après la fin du général) ?

cordialement,
Michael
 
Re : eclater un tableau croise dynamique

Re Ike

regarde le code ci dessous, supprime toutes les feuilles si le nom es different de "Feuil1", test à adapter suivant ton appli :

Code:
Dim ws As Worksheet
Application.DisplayAlerts = False
For Each ws In Worksheets
    If ws.Name <> "Feuil1" Then ws.Delete
Next ws
Application.DisplayAlerts = True

enfin si c'est bien cela que tu veux, pas sur à 100%

bonne soirée
@+
 
Re : eclater un tableau croise dynamique

bonjour,

Ça y ai c'est quasiment fini,

il ne me reste qu'un petit problème de l'ordre du détail mais:

quand j'ai fini ma boucle, il me fait apparaitre la fenêtre de sélection des objets avec le dernier tableau de ma feuille sélectionnée comment je peux faire pour qu'il ne m'affiche pas cette fenêtre et qu'il me place sur le premier tableau croise?

voila, j'espère que c'est ma dernière question 🙂
merci de tout l'aide que tu m'as apporté.
cordialement,
Michael
 
Re : eclater un tableau croise dynamique

bonjour,

voici les dernières nouvelles:
une collègue est en train de vérifier le fonctionnement du programme et après c'est l'envoi à la cliente.

je te tiens au courant.

encore merci
cordialement,
Michael
 
- 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

Retour