VBA changer filtre TCD depuis IHM

debutante - Modifié par debutante le 17/10/2013 à 13:42
 VBADebutant - 20 nov. 2013 à 17:14
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

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
20 nov. 2013 à 02:08
Bonjour,
Un mois après.... c'est surement résolu..

A tout hasard... je pense que ton souci est au niveau du passage de tes variables.

Essayes le code suivant tu comprendras surement où tu as fait ton erreur :
Sub test()
    Dim x As Integer
        x = 100
    Debug.Print "Bonne façon de faire N°" & x
    Debug.Print "Mauvaise façon de faire N° & x "
End Sub


Ce qui donnerait, pour ton cas :
"[As Of Date].[As Of Date].[" & IHMdate & "]" 

0
VBADebutant
20 nov. 2013 à 17:14
merci du retour:)
0
Rejoignez-nous