Filtrer TCD depuis IHM [Résolu/Fermé]

Signaler
-
Messages postés
1941
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
23 août 2020
-
Bonjour,

Bonjour,
je dispose de TCD sur 2 feuilles differentes filtrés par date et par scenario type
j'ai créee un user form avec un textbox "date et un combox scenario type
je souhaite changer les filtre des 2 TCD depuis l'IHM
vu que je débute en VBA j'ai enregistré une macro pour avoir le code que je n'arrive pas a adapter pour l'automatiser
Sub change_filter()
'
' change_filter Macro
'
Dim prodWorksheet As Worksheet, testWorksheet As Worksheet
Dim IHMdate As String
Dim ScenType As String
Set prodWorksheet = ThisWorkbook.Worksheets("ProdDATA")
Set testWorksheet = ThisWorkbook.Worksheets("TestDATA")
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''' variable a insérer pour automatiser les changement de filtres via ihm
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
IHMdate = UserForm1.TB_Date.Value
ScenType = UserForm1.CB_scenariotype.Value
'
prodWorksheet.Select
prodWorksheet.PivotTables("PROD").PivotFields( _
"[As Of Date].[As Of Date].[As Of Date]").ClearAllFilters
prodWorksheet.PivotTables("PROD").PivotFields( _
"[As Of Date].[As Of Date].[As Of Date]").CurrentPageName = _
"[As Of Date].[As Of Date].&[20131007]"
ActiveSheet.PivotTables("PROD").PivotFields( _
"[Scenario].[Scenario Type].[Scenario Type]").ClearAllFilters
prodWorksheet.PivotTables("PROD").PivotFields( _
"[Scenario].[Scenario Type].[Scenario Type]").CurrentPageName = _
"[Scenario].[Scenario Type].&[DELTABASISINTERCUR]"
testWorksheet.Select
testWorksheet.PivotTables("TEST").PivotFields( _
"[As Of Date].[As Of Date].[As Of Date]").ClearAllFilters
testWorksheet.PivotTables("TEST").PivotFields( _
"[As Of Date].[As Of Date].[As Of Date]").CurrentPageName = _
"[As Of Date].[As Of Date].&[20131007]"
testWorksheet.PivotTables("TEST").PivotFields( _
"[Scenario].[Scenario Type].[Scenario Type]").ClearAllFilters
testWorksheet.PivotTables("TEST").PivotFields( _
"[Scenario].[Scenario Type].[Scenario Type]").CurrentPageName = _
"[Scenario].[Scenario Type].&[DELTABASISINTERCUR]"


après plusieurs syntaxes essayées , dans le code généré par excel je n'ai pas trouvée la bonne syntaxe pour mettre mes 2 variables décalarés afin d'automatiser le changement de date et de scenario type
merci pour votre préciseuse aide

1 réponse

Messages postés
1941
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
23 août 2020
149
Bonjour,

Le code généré automatiquement est un peu bizarre.
Essaie ça :
    For Each sel In ActiveSheet.PivotTables("PROD").PivotFields("Date").PivotItems
ActiveSheet.PivotTables("PROD").PivotFields("Date").PivotItems(sel.Name).Visible = True
Next sel
For Each sel In ActiveSheet.PivotTables("PROD").PivotFields("Date").PivotItems
If sel.Name <> IHMdate Then
ActiveSheet.PivotTables("PROD").PivotFields("Date").PivotItems(sel.Name).Visible = False
End If
Next sel

NB : avec les TCD à aucun moment il n'est possible d'avoir toutes les valeurs décochées, d'où l'idée de cocher tout puis de décocher celles qui ne correspondent pas à ta valeur saisie das le UserForm.

A+
Messages postés
1941
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
23 août 2020
149
Pourquoi le TCD ne s'appelle-t-il plus prod ? Est-ce que tu en génères un par Macro ?
Je ne peux pas t'aider plus à l'aveuglette
au fait le tcd ne s'appelle plus PROD parce que je tester ton code sur une version antecedante

mais cela ne change rien car j'ai adapté le code

sinon non je n'arrive pas a generer un TCD par macro( meme si c'était mon 1er souhait ) car j'ai un CUBE OLAP derrier et non une base de donnée que je peux intérroger ou une plage de données dans une feuille

du coup c'est vraiment juste un ensemble de champs sur un USERFORM qui correspondent aux filtres établis dans une feuille


le but et de modifier ces filtres via IHM pour éviter de modifier a la main a chaque fois ( car a la base j'ai 2 TCD a gérer )


merci de la patience et de l'aide je sais que ce n'est pas évident sans fichier
Messages postés
1941
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
23 août 2020
149
Essaie de le mettre à disposition sur le net en-dehors du boulot...
ok je le mettrai ce soir en rentrant a la maison
Messages postés
1941
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
23 août 2020
149
Bonjour,

Je ne vois ni TCD, ni macro qui s'exécute sans erreur dès le départ ?!

A+