Bonjour,

J'ai une feuille de données avec les colonnes :

A | B | C | D |....

Admettons la colonne A = id (la référence de la ligne) et D = le prix

Normalement, pour ajouter un pivot table, je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
Set s = Sheets(nomdusheet)
 
'Créer un pivot table blank et ajouter la source de données pour le pivot table
    Workbooks(ThisWorkbook.Name).PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
    "'PPR'!R1C1:R20000C79").CreatePivotTable TableDestination:=Sheets(nomdusheet2).Range("A1"), _
    TableName:="matable"
 
   'Ajouter pivot fields
    s.PivotTables("matable").AddFields RowFields:=Array(...les colonnes...), ColumnFields:=Array(...les colonnes...), _
    PageFields:=Array(...les colonnes...)
 
   'Ajouter data field 1
   'Add Datafield 1 (AOP) sum
     With s.PivotTables("vtarget").PivotFields(macolonne)
        .Orientation = xlDataField
        .Caption = "...n'importe"
        .Position = 1
        .Function = xlSum
        .NumberFormat = "#,##0;(#,##0);-"
     End With
 
'Ajouter data field 2
...etc
Mais ce code prend toute la feuille comme SourceData.

Ce que je veux c'est de prendre seulement en compte les lignes où le prix est > 0, par exemple.

Comment faire un pivot table ayant SourceData selon certaines conditions ?