2016-06-10 4 views
0

Ich muss eine Pivot-Tabelle auf einem Benutzerformular ausfüllen und war erfolgreich mit nur einem Feld, aber ich brauche 4 Felder, um zu zeigen. hier ist das, was ich habe aber immer Fehler halten:Wie wird die Benutzerformularliste von der Pivot-Tabelle ausgefüllt?

Private Sub UserForm_Initialize() 

Dim pvtTable As PivotTable 
    Dim pvtDeliv, pvtDoc, pvtName, pvtMaterial As PivotField 
    Dim lngIndex As Long 
    Dim arrData() As String 

Set pvtTable = Worksheets("orders").PivotTables("orders") 
    Set pvtDoc = pvtTable.PivotFields("OriginDoc.") 
    Set pvtDeliv = pvtTable.PivotFields("Deliv.Date") 
    Set pvtMaterial = pvtTable.PivotFields("Material") 
    Set pvtName = pvtTable.PivotFields("Name") 

    ListBox1.ColumnCount = 4 

    For lngIndex = 1 To pvtDeliv.PivotItems.Count 
    UserForm1.ListBox1.AddItem pvtDeliv.PivotItems(lngIndex).Name.Value 
    ListBox1.List(lngIndex, 2) = pvtMaterial.PivotItems(lngIndex).Name.Value 
    ListBox1.List(lngIndex, 3) = pvtName.PivotItems(lngIndex).Name.Value 
    ListBox1.List(lngIndex, 4) = pvtDoc.PivotItems(lngIndex).Name.Value 

    Next 


    End Sub 

Das ist die Pivot-Tabelle

Pivot table

Dank im Voraus zu füllen Ich versuche ist. Martyna

+0

ein paar weiteren Tags hinzufügen kann Ihre Frage helfen, mehr Aufmerksamkeit zu bekommen. Zum Beispiel: Welche Sprache ist das? Visual Basic? –

Antwort

0

Nachdem einige untersuchen ich es herausgefunden und hier ist der überarbeitete Code:

Private Sub UserForm_Initialize() 

Dim pvtTable As PivotTable 
    Dim pvtDeliv, pvtDoc, pvtName, pvtMaterial As PivotField 
    Dim lngIndex As Long 
    Dim arrData() As String 

    Set pvtTable = Worksheets("orders").PivotTables("orders") 
    Set pvtDoc = pvtTable.PivotFields("OriginDoc.") 
    Set pvtDeliv = pvtTable.PivotFields("Deliv.Date") 
    Set pvtMaterial = pvtTable.PivotFields("Material") 
    Set pvtName = pvtTable.PivotFields("Name") 

    ListBox1.ColumnCount = 4 

    For lngIndex = 1 To pvtDeliv.PivotItems.Count 
    UserForm1.ListBox1.AddItem 
    ListBox1.List(lngIndex - 1, 0) = pvtDeliv.PivotItems(lngIndex).Name 
    ListBox1.List(lngIndex - 1, 1) = pvtMaterial.PivotItems(lngIndex).Name 
    ListBox1.List(lngIndex - 1, 2) = pvtName.PivotItems(lngIndex).Name 
    ListBox1.List(lngIndex - 1, 3) = pvtDoc.PivotItems(lngIndex).Name 

    Next 


    End Sub 
Verwandte Themen