Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
660to664
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
660to664
660to664
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Gruppieren in einer Pivot per VBA

Gruppieren in einer Pivot per VBA
02.09.2005 11:50:31
R.Schmitt
Hallo miteinander,
ich plage mich gerade damit herum, eine Pivot Tabelle per VBA zu erstellen.
Mitsamt berechneten Feldern, Formaten usw. und so fort.
Dabei stoße ich auch auf die mir bisher unbekannte Problematik ein Feld
gruppieren zu müßen und zwar das des Kunden mit seinen Filialen.
In Abhängigkeit davon ob in den Stammdaten für einen bestimmten Kunden eine
gewisse Filiale enthalten ist, soll diese in der PivotTabelle mit dem "Haupt-
haus" gruppiert werden.
Mit dem Makro-Rekorder aufgenommen ergibt das :
Range("B110:B111").Select
Selection.Group
ActiveSheet.PivotTables("PivotTable1").PivotFields("Kunden-Nr (KD)2"). _
PivotItems("Gruppe16").Caption = "0815000"
Wobei hier für den Kunden 0815000 dessen Haupthaus 0815000 mit der Filiale
0815501 gruppiert wurde. Es gibt auch noch die Filialen 0815502 und 0815503
gruppiert werden sollen aber nur 0815000 und 0815501
Besteht die Möglichkeit per VBA abzufragen, ob in PivotFields("Kunden-Nr (KD)2")
ein Item mit Namen 0815501 vorkommt ? Ja gewiß. Doch wie bekomme ich es per VBA
hin dieses Item bei vorhandesein mit dem Item 0815000 zu gruppieren?
Vielen Dank
R.Schmitt

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Fast die Lösung
02.09.2005 14:13:15
R.Schmitt
Sub NeuePivot()
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Werte!R2C1:R65536C31").CreatePivotTable TableDestination:="", TableName:= _
"PivotTable2"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("PivotTable2").SmallGrid = False
ActiveSheet.PivotTables("PivotTable2").AddFields RowFields:="Kunden-Nr (KD)"
With ActiveSheet.PivotTables("PivotTable2").PivotFields("Bezug")
.Orientation = xlDataField
.Caption = "Summe - Bezug"
.Function = xlSum
.NumberFormat = "#.##0"
End With

Dim zelle, str As String, strg As String

For Each zelle In Range("A1:A130")
If zelle.Value = "86002" Or zelle.Value = "86503" Then
str = str & zelle.AddressLocal(False, False) & ","
End If
Next
strg = Left(str, Len(str) - 1)
Range(strg).Select

Selection.Group
ActiveSheet.PivotTables("PivotTable2").PivotFields("Kunden-Nr (KD)2"). _
PivotItems("Gruppe1").Caption = "86002"
Application.CommandBars("PivotTable").Visible = False

Columns("B:B").Activate

For Each zelle In Range("b1:b130")
If zelle.Value = "35001" Or zelle.Value = "35003" Then
str = str & zelle.AddressLocal(False, False) & ","
End If
Next
strg = Left(str, Len(str) - 1)
Range(strg).Select

Selection.Group
ActiveSheet.PivotTables("PivotTable2").PivotFields("Kunden-Nr (KD)2"). _
PivotItems("Gruppe1").Caption = "35001"
Application.CommandBars("PivotTable").Visible = False
Mein Problem ist jetzt nur noch, daß er die bei ersten mal gruppierten
Zellen immer noch ausgewählt hält und in der zweiten Gruppierung mitgruppiert.
Wie schließe ich denn die zuletzt gruppierten Zellen von der neu zu gruppierenden
Range aus ?
Viele Grüße
R.Schmitt
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige