Bonjour la communauté!
Je travaille sur un TCD créé en VBA : je voudrais que les champs du pivotFields "Utilisateur creat. cde" soient filtrés par rapport à une liste de valeurs "string" contenues dans un array nommé "tableau_SECU"
J'ai essayé 2 manières :
Avec une boucle For Each PivotItems et une boucle IF imbriquée , mais le champ correspondant du TCD est filtré pour toutes les valeurs sauf sur le dernier élément de la liste du "tableau_SECU" :
et celle ci car cela me semblait plus propre avec une boucle For Each PivotItems et une boucle WHILE qui permet de passer au PivotItems suivant dès que l'on trouve une valeur de PivotItems égale à une valeur de l'array "tableau_SECU" mais ca bug en syntaxe sur le "End while" je ne comprends pas pourquoi
Voilà, il y aurait peut être une solution en mettant les valeurs de pivotItems et du tableau dans deux "scripting dictionnary" puis comparer les éléments des 2 comme condition pour passer la valeur du filtre à visible ?
Edit : j'ai essayé les segments également mais comment le paramétrer automatiquement avec les éléments du tableau (qui en comporte une quarantaine)?
Edit2 : je suis sur excel 2013
Merci infiniment pour votre aide!
Je travaille sur un TCD créé en VBA : je voudrais que les champs du pivotFields "Utilisateur creat. cde" soient filtrés par rapport à une liste de valeurs "string" contenues dans un array nommé "tableau_SECU"
J'ai essayé 2 manières :
Avec une boucle For Each PivotItems et une boucle IF imbriquée , mais le champ correspondant du TCD est filtré pour toutes les valeurs sauf sur le dernier élément de la liste du "tableau_SECU" :
VB:
With .PivotFields("Utilisateur creat. cde")
For Each valeur In .PivotItems
For i=1 to Nbre_agents
if valeur.name<>tableau_SECU(i,1) then
valeur.visible=false
Next
Next
End With
et celle ci car cela me semblait plus propre avec une boucle For Each PivotItems et une boucle WHILE qui permet de passer au PivotItems suivant dès que l'on trouve une valeur de PivotItems égale à une valeur de l'array "tableau_SECU" mais ca bug en syntaxe sur le "End while" je ne comprends pas pourquoi
VB:
With .PivotFields("Utilisateur creat. cde")
For Each valeur In .PivotItems
i = 1
While valeur.Name <> tableau_SECU(i, 1) And i < Nbre_agents
i = i + 1
valeur.Name.Visible = False
End while
Next
End With
Voilà, il y aurait peut être une solution en mettant les valeurs de pivotItems et du tableau dans deux "scripting dictionnary" puis comparer les éléments des 2 comme condition pour passer la valeur du filtre à visible ?
Edit : j'ai essayé les segments également mais comment le paramétrer automatiquement avec les éléments du tableau (qui en comporte une quarantaine)?
Edit2 : je suis sur excel 2013
Merci infiniment pour votre aide!
Dernière édition: