2009-06-01 7 views
0

Je génère un graphique pivot dans Excel 2002 avec une macro, en utilisant un champ de date comme filtre de rapport de graphique (définition de l'orientation du champ sur xlPageField). Je voudrais définir la valeur sélectionnée par défaut de ce pivot à la valeur la plus récente dans le champ de date. Quelle est la bonne syntaxe pour faire cela dans VBA? Vous ne voulez pas simplement sélectionner la cellule après avoir créé dynamiquement le graphique?Valeur par défaut pour le filtre/champ de page de rapport de graphique croisé dynamique

Répondre

0

Ne pouvez-vous pas parcourir tous les éléments de ce champ de recherche? Voici un tableau croisé dynamique, mais le faire fonctionner pour un graphique ne devrait pas être une grosse affaire:

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 
+0

Mon alternative était d'obtenir la date la plus récente avec une requête SQL – TheObserver

0

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 
0

ChartObject .PivotLayout.PivotTable.PivotFields ("fieldName ") .CurrentPage =" fieldValue"

C'est à partir d'Excel 2003, mais je présume 2002 sera similaire

+0

Oui, vous avez raison, mais ce que je voulais vraiment calculer en VBA est le « fieldValue ». J'ai résolu mon problème en créant une requête sql séparée pour trouver la valeur de date maximale mais je me demandais comment j'aurais pu le faire en interrogeant simplement le tableau pivotant – TheObserver

Questions connexes