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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top