Valeur par défaut pour le rapport PivotChart Filtre / champ Page
Question
Je générer un tableau croisé dynamique dans Excel 2002 avec une macro, en utilisant un champ de date que le filtre du rapport de tableau (réglage de l'orientation du champ à xlPageField). Je voudrais définir la valeur par défaut sélectionnée de cette PivotField à la valeur la plus récente dans le champ de date. Quelle est la bonne syntaxe pour faire cela en VBA?
La solution
boucle ne peut pas vous à travers tous les éléments pour que pagefield? Voici un tableau croisé dynamique, mais le faire fonctionner pour un graphique ne devrait pas être gros problème:
Sub Main()
Dim pvt As PivotTable
Dim fld As PivotField
Dim itm As PivotItem
Dim m As Variant
Set pvt = Worksheets(1).PivotTables(1)
Set fld = pvt.PageFields(1)
m = fld.PivotItems(1)
For Each itm In fld.PivotItems
If itm.Value > m Then m = itm.Value
Next itm
fld.CurrentPage = m
End Sub
Autres conseils
Vous ne voulez pas simplement sélectionner la cellule après avoir créé dynamiquement le tableau?
Quelque chose comme:
Dim value As Date
value = "1-apr-09"
Dim row As Integer
row = 0
Dim keeplooping As Boolean
keeplooping = True
While (keeplooping)
row = row + 1
If Range("B" & row).value = value Then
keeplooping = False
Range("B" & row).Select
MsgBox ("found it")
ElseIf Range("B" & row).value = "" Then
keeplooping = False
MsgBox ("Not found")
End If
Wend
ChartObject .PivotLayout.PivotTable.PivotFields ( " fieldName "). PageCourante = " fieldValue "
C'est à partir d'Excel 2003, mais je présume 2002 sera semblable