Filtrer TCD depuis IHM
Résolu/Fermé
debutanteVBA
-
17 oct. 2013 à 10:21
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 21 oct. 2013 à 10:34
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 21 oct. 2013 à 10:34
A voir également:
- Filtrer TCD depuis IHM
- Tcd excel - Guide
- حل مشكلة code ihm non valide - Forum LG
- Comment filtrer sur excel - Guide
- Ihm terminé ✓ - Forum LG
- Actualiser tcd google sheet - Forum Bureautique
1 réponse
Zoul67
Messages postés
1959
Date d'inscription
lundi 3 mai 2010
Statut
Membre
Dernière intervention
30 janvier 2023
149
17 oct. 2013 à 14:09
17 oct. 2013 à 14:09
Bonjour,
Le code généré automatiquement est un peu bizarre.
Essaie ça :
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+
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+
17 oct. 2013 à 15:01
au fait le sel vous le éclarez de quel type ? string , variant...?
voici mon code réadapter mais en erreur
Sub changer_fi()
'
' changer_filter_zoom Macro
Dim prodWorksheet As Worksheet, testWorksheet As Worksheet
Dim IHMdate As String
Dim ScenType As String
Dim ScenID As String
Dim TradeTyp As String
Dim Book As String
Dim sel As Variant
Set prodWorksheet = ThisWorkbook.Worksheets("ProdDATA")
Set testWorksheet = ThisWorkbook.Worksheets("TestDATA")
IHMdate = UserForm1.TB_Date.Value
ScenType = UserForm1.CB_scenariotype.Value
For Each sel In prodWorksheet.PivotTables("Tableau croisé dynamique3").PivotFields("AS of Date").PivotItems
prodWorksheet.PivotTables("Tableau croisé dynamique3").PivotFields("AS of Date").PivotItems(sel.Name).Visible = True
Next sel
For Each sel In prodWorksheet.PivotTables("Tableau croisé dynamique3").PivotFields("AS of Date").PivotItems
If sel.Name <> IHMdate Then
prodWorksheet.PivotTables("Tableau croisé dynamique3").PivotFields("AS of Date").PivotItems(sel.Name).Visible = False
End If
Next sel
End Sub
encore merci pour l'aide :)
17 oct. 2013 à 15:11
Il faut faire un boulot d'analyse (je parierais sur la date qui n'est pas reconnue ce qui amène à décocher toutes les valeurs)... :
- à quel niveau le code bloque-t-il ?
- la première boucle For s'exécute-t-elle correctement ?
- ...
Peux-tu mettre ton fichier à disposition sur https://www.cjoint.com/ ?
Je n'avais pas typé "sel", mais si on m'avait mis le couteau sous la gorge, j'aurais aussi choisi Variant.
Par curiosité : pourquoi utiliser un UserForm pour filtrer ?
A+
17 oct. 2013 à 15:15
ici :
For Each sel In prodWorksheet.PivotTables("Tableau croisé dynamique3").PivotFields("AS of Date").PivotItems
et le msg dis " impossible de lire la propriété PivotFields de la classe pivotItable
cette erreur apparait en 2eme apres un msg me demandant de déclarer la variable sel
je suis au bureau je n'arrive pas a mettre mon fichier en ligne :s et ca me bloque
si vous avez une idée je suis prenante
17 oct. 2013 à 15:30
Je ne peux pas t'aider plus à l'aveuglette
17 oct. 2013 à 16:03
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