TDC en VBA, comment filtrer les DATA via VBA

Résolu/Fermé
reno421 Messages postés 41 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 16 septembre 2015 - Modifié par reno421 le 4/09/2015 à 10:49
reno421 Messages postés 41 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 16 septembre 2015 - 4 sept. 2015 à 11:29
Bonjour à tous,

Je sollicite votre aide pour le filtrage d'un TCD en vba. en lisant les forums, j'ai trouvé plusieurs explications. J'arrive à filtre mon TCD dur le champs "Année" mais uniquement pour une seule année :2014. Hors, je voudrais qu'il la filtre pour les années 2014 et 2015.
Comment puis-je faire. Ci-joint mon code.

D'avance merci pour votre aide


Sub TCD1()

Dim wshTCD As Worksheet
Dim PvT As PivotTable

'Affectation du TCD à la feuille "TCD automatique"
Set wshTCD = Worksheets("TCD automatique")

'Supression de tous les TCD existants dans la feuille
For Each PvtTCD In wshTCD.PivotTables
PvtTCD.TableRange2.Clear
Next PvtTCD

'Ajout d'un TCD sur la feuille "TCD automatique"
Set PvtTCD = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:="Consom") _
.CreatePivotTable(TableDestination:=wshTCD.Range("B2"), TableName:="TCD_EAN")

'Ajout de champs au TCD
With PvtTCD
'Ajout d'une Ligne
With .PivotFields("EAN")
.Orientation = xlPageField
.Position = 1
End With

With .PivotFields("Mois")
.Orientation = xlRowField
.Position = 1
End With

With .PivotFields("Année")
.Orientation = xlRowField
.Position = 2
End With

'Ajout d'une Colonne -> pas nécessaire dans ce cas ci
'Ajout d'une valeur de consommation

With .PivotFields("Cons. Jour (kWh)")
.Orientation = xlDataField
'.fuction = xlSum
.NumberFormat = "###.##0"
.Position = 1
End With

With .PivotFields("Cons. nuit (kWh)")
.Orientation = xlDataField
'.fuction = xlSum
.NumberFormat = "###.##0"
.Position = 2
End With

With .PivotFields("Cons. nuit (kWh)")
.Orientation = xlDataField
'.fuction = xlSum
.NumberFormat = "###.##0"
.Position = 3
End With

End With

' Application d'un filtre sur Année

With ActiveSheet
.PivotTables("TCD_EAN").PivotFields("Année").ClearAllFilters
.PivotTables("TCD_EAN").PivotFields("Année").PivotFilters.Add _
Type:=xlCaptionEquals, Value1:="2014"
End With

' Remplacez "AAAA" par nom_de_la_feuille.TextBox1.Value ou nom_de_userform.TextBox1.Value ou suivant l 'endroit ou vous lancez ce code, il faudra peut-etre passer par une variable Public:



'Ajout d'un graphique

ActiveSheet.Shapes.AddChart.Select ActiveSheet.Shapes.AddChart.Select

ActiveChart.SetSourceData Source:=Range("'TCD automatique'!$B$3:$E$56")

ActiveChart.ChartType = xl3DColumnStacked100

ActiveChart.ChartType = xl3DColumnStacked


End Sub
A voir également:

1 réponse

reno421 Messages postés 41 Date d'inscription vendredi 30 janvier 2015 Statut Membre Dernière intervention 16 septembre 2015
4 sept. 2015 à 11:29
Ca y est j'ai trouvé, il faut, dans mon cas choisir xlCaptionIsGreaterThan.

Facile quand on a la solution, dire que j'ai cherché des heures :-(
0