Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

eclater un tableau croise dynamique

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
 

news

XLDnaute Impliqué
Re : eclater un tableau croise dynamique

Re:
est il possible de compter le nombre d'item du champ pagesFields ?
mieux d'y remettre le fichier pour mieux comprendre,

ci-joint un petite exemple,
en se positionnant dans le tableau, clickez souris droite, > paramètres de champ < sélecionnez: Nombre
peut-être ceci le résoud,
 

Pièces jointes

  • tableau_croisé_dynamique.xls
    19.5 KB · Affichages: 99

ike667

XLDnaute Nouveau
Re : eclater un tableau croise dynamique

merci de cette reponse;
neanmoins, il me faudrait cette valeur par VBA car le nombre d'occurence du pivotfields est variable.

cordialement,
michael
 
Dernière édition:

news

XLDnaute Impliqué
Re : eclater un tableau croise dynamique

neanmoins, il me faudrait cette valeur par VBA car le nombre d'occurence du pivotfields est variable.
pour info, que ceci je ne sais pas encore établir en VBA,
 

Pierrot93

XLDnaute Barbatruc
Re : eclater un tableau croise dynamique

Bonjour Michael, News

si j'ai bien compris, pas sur, essaye peut être le code ci dessous :

Code:
x = ActiveSheet.PivotTables(1).PivotFields("Nom_Champ_Concerné").PivotItems.Count

bon après midi
@+
 

ike667

XLDnaute Nouveau
Re : eclater un tableau croise dynamique

désolé, mais la fonction ne me renvoie pas le nom d'itération que comprend le champ UFSERV

j'ai 4 occurrences dont le (tout) et la fonction ne retourne 38....

si une autre idée je suis preneur car je n'en ai pas encore trouvé.

cordialement,
Michael
 

ike667

XLDnaute Nouveau
Re : eclater un tableau croise dynamique

une nouvelle fois, je suis désolé mais je ne peux pas mettre le fichier en peice jointe:
- donnée confidentielle
- access a une base de données oracle distante ( je suis a limoges la base est a brive)

ce que je souhaite faire :

faire une fonction qui permet de mettre tous les tableaux croisés dynamiques les uns a la suites des autres comme le fait le bouton "Afficher les pages"
mais au lieu qui soit sur des onglets différents il me les faut sur le même onglet

j'ai découpé le problème en sous problème et le premier a réglé est de connaitre le nombre de tableau qui peut y avoir car en effet le tableau croisé dynamique dépend d'un paramètre de service et suivant les services je n'ai pas le même nombre d'itération dans la variable de regroupement(pivot pages)

voila a peut prêt ce que j'essaie de faire.

cordialement,
Michael
ps: merci beaucoup de se pencher sur mon problème
 

Pierrot93

XLDnaute Barbatruc
Re : eclater un tableau croise dynamique

Re

comprends pas trop, si j'execute la ligne de code que je t'ais donné, j'obtiens bien le bon nombre de pages que m'afficherait le bouton "Afficher les pages". Mais attention les TCD garde en "mémoire" tous les items précédemment utilisées...

@+
 

Pierrot93

XLDnaute Barbatruc
Re : eclater un tableau croise dynamique

Bonjour Ike

essaye peut être la macro de Debra Dalgleish ci dessous :

Code:
Sub NettoieItemTCD()
'macro de Debra Dalgleish
Dim ws As Worksheet, pt As PivotTable, pf As PivotField
Dim pi As PivotItem, i As Integer
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
    For Each pt In ws.PivotTables
    pt.RefreshTable
        For Each pf In pt.PivotFields
            For Each pi In pf.PivotItems
                If pi.RecordCount = 0 And Not pi.IsCalculated Then pi.Delete
            Next
        Next
    Next
Next
End Sub

bonne journée
@+
 

ike667

XLDnaute Nouveau
Re : eclater un tableau croise dynamique

re,

après test, je remarque que une fois sur 5 j'ai le bon nombre d'items pourtant je lance la procédure a chaque actualisation du tableau croise.

comment modifier le code pour que ce soit juste a chaque actualisation?
comment l'accélérer car avec les autres traitements ça devient long?

cordialement,
Michael
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…