array draaitabellen sorteren met vba

Status
Niet open voor verdere reacties.

arjoderoon

Gebruiker
Lid geworden
2 mei 2007
Berichten
476
Ik heb in een template een code om via vba mijn draaitabellen oplopend gesorteerd te krijgen. Dat is al eens in een ander topic aan de orde gekomen.
(topic link: http://www.helpmij.nl/forum/showthr...lgens-gebruiken?highlight=draaitabel+sorteren)

Dit betrof 1 draaitabel, maar nu heb ik 3 draaitabellen die ik gesorteerd wil hebben. Ik dacht dit via onderstaande code te doen:
Code:
Sub sort()
Dim pivotnames As Variant
Dim i As Integer
Dim pvtField As PivotField
pivotnames = Array("Draaitabel3", "Draaitabel1", "Draaitabel4")

For i = UBound(pivotnames) To LBound(pivotnames)
For Each pvtField In Worksheets("blad5").PivotTables(pivotnames).RowFields

Worksheets("blad5").PivotTables(pivotnames).PivotFields(pvtField.Name).AutoSort _
               xlAscending, pvtField.Name

Next pvtField
Next i

End Sub

Helaas gebeurt er dan niet wat ik graag zou willen dat er gebeurt. Mijn draaitabellen worden niet gesorteerd.
Als ik in vba via F8 de code stap voor stap langs loop, dan schiet hij naar end sub na de regel "For i = UBound(pivotnames) To LBound(pivotnames)".
Maar ik probeer te doorgronden waarom dit gebeurt.

Heb ik de pivotnames niet goed gedeclareerd?

edit:
Na lang puzzlen met verschillende mogelijkheden werkt dit nu voor mij:
Code:
Sub sort()
Dim i As Variant
Dim pvtField As PivotField
Dim ptname As String

For i = 1 To 4
    If i = 2 Then
      i = i + 1
      Else
      ptname = "Draaitabel" & i

      For Each pvtField In Worksheets("blad5").PivotTables(ptname).RowFields

      Worksheets("blad5").PivotTables(ptname).PivotFields(pvtField.Name).AutoSort _
               xlAscending, pvtField.Name

      Next pvtField
    End If
Next i

End Sub
 
Laatst bewerkt:
Dag arjoderoon !

Zonder mogelijkheid om het te testen, denk ik dat het te wijten is aan foutief gebruik van de array "pivotnames".

De code bevat de volgende lus:
Code:
For i = UBound(pivotnames) To LBound(pivotnames)
    ...
Next i
maar binnen in de lus komt de index i nergens voor (???).

Volgens mij moet de code
Code:
... PivotTables(pivotnames) ...

gewijzigd worden in
Code:
... PivotTables(pivotnames[COLOR="#FF0000"][i][/COLOR]) ...

Grtz,
MDN111.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan