Classe PivotTables (Excel VBA)

Collection de tous les objets PivotTable dans le classeur spécifié.

Pour utiliser une variable de classe PivotTables, elle doit d'abord être instanciée, par exemple

Dim pts as PivotTables
Set pts = ActiveSheet.PivotTables()

Les procédures suivantes peuvent être utilisés pour définir des variables de la classe PivotTables : Workbook.PivotTables et Worksheet.PivotTables.

For Each

Voici un exemple de traitement des éléments PivotTables dans une collection

Dim pvt As PivotTable
For Each pvt In Application.PivotTables
	
Next pvt

Add

Cette méthode ajoute un nouveau rapport de tableau croisé dynamique. Elle renvoie un objet PivotTable.

Add (PivotCache, TableDestination, TableName, ReadData, DefaultVersion)

Dim cnnConn As ADODB.Connection 
Dim rstRecordset As ADODB.Recordset 
Dim cmdCommand As ADODB.Command 
 
' Open the connection. 
Set cnnConn = New ADODB.Connection 
With cnnConn 
 .ConnectionString = _ 
 "Provider=Microsoft.Jet.OLEDB.4.0" 
 .Open "C:\perfdate\record.mdb" 
End With 
 
' Set the command text. 
Set cmdCommand = New ADODB.Command 
Set cmdCommand.ActiveConnection = cnnConn 
With cmdCommand 
 .CommandText = "Select Speed, Pressure, Time From DynoRun" 
 .CommandType = adCmdText 
 .Execute 
End With 
 
' Open the recordset. 
Set rstRecordset = New ADODB.Recordset 
Set rstRecordset.ActiveConnection = cnnConn 
rstRecordset.Open cmdCommand 
 
' Create PivotTable cache and report. 
Set objPivotCache = ActiveWorkbook.PivotCaches.Add( _ 
 SourceType:=xlExternal) 
Set objPivotCache.Recordset = rstRecordset 
 
ActiveSheet.PivotTables.Add _ 
 PivotCache:=objPivotCache, _ 
 TableDestination:=Range("A3"), _ 
 TableName:="Performance" 
 
With ActiveSheet.PivotTables("Performance") 
 .SmallGrid = False 
 With .PivotFields("Pressure") 
 .Orientation = xlRowField 
 .Position = 1 
 End With 
 With .PivotFields("Speed") 
 .Orientation = xlColumnField 
 .Position = 1 
 End With 
 With .PivotFields("Time") 
 .Orientation = xlDataField 
 .Position = 1 
 End With 
End With 
 
' Close the connections and clean up. 
cnnConn.Close 
Set cmdCommand = Nothing 
Set rstRecordSet = Nothing 
Set cnnConn = Nothing

Arguments

Les arguments nommés :

PivotCache (PivotCache) - Cache de tableau croisé dynamique sur lequel repose le nouveau rapport de tableau croisé dynamique. Le cache fournit les données nécessaires au rapport.

TableDestination (PivotTables) - Cellule située dans le coin supérieur gauche de la plage de destination du rapport de tableau croisé dynamique (plage de la feuille de calcul destinée à recevoir le rapport obtenu). Vous devez spécifier une plage de destination sur la feuille de calcul qui contient l'objet PivotTables spécifié par expression.

Optional arguments

Les arguments suivants sont facultatifs

TableName (String) - Nom du nouveau rapport de tableau croisé dynamique.

ReadData (Boolean) - True pour créer un cache de tableau croisé dynamique contenant tous les enregistrements issus de la base de données externe ; ce cache peut être très volumineux. False pour autoriser la définition de certains champs en tant que champs de page reposant sur un serveur avant que les données soient effectivement lues.

DefaultVersion - Version de Microsoft Excel dans laquelle le tableau croisé dynamique a été initialement créé

Count

Cette propriété renvoie une valeur de type Long qui représente le nombre d’objets de la collection.

Dim lngCount As Long
lngCount = ActiveSheet.PivotTables.Count

Item

Cette méthode renvoie un seul objet d'une collection.

Le nom de l’objet est la valeur des propriétés Name et value .

Item (Index)

Index: Nom ou numéro d'index de l'objet.

Dim pvt As PivotTable
Set pvt = ActiveSheet.PivotTables(Index:=1)