Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1388to1392
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
Inhaltsverzeichnis

VBA Gruppierung - Fehler bei einem Element abfange

VBA Gruppierung - Fehler bei einem Element abfange
04.11.2014 08:48:54
Markus
Hallo zusammen,
ich bin neu hier und freue mich schon auf eure Hilfe.
Leider habe ich bei VBA ein Problem.
Bei der Gruppierung von Elementen in einer Pivot-Tabelle via VBA Code kann es in meinen Daten vorkommen, dass die Auswahl nur ein Element enthält und dies kann bei Pivots nicht gruppiert werden (endet mit einer Fehlermeldung).
Behelfsweise habe ich diese Möglichkeit folgendermaßen ausgeschlossen:
[...]
On Error GoTo FailureGroupMasterSupplierCompetitor
ActiveSheet.PivotTables(wsPivotTableName).PivotSelect _
"'Master Supplier'[Beispiel1,Beispiel2,Beispiel3]", xlDataAndLabel, True
Selection.Group
ActiveSheet.PivotTables(wsPivotTableName).PivotFields("Master Supplier2"). _
PivotItems("Gruppe1").Caption = "IHR"
FailureGroupMasterSupplierCompetitor:
On Error GoTo FailureGroupMasterSupplierTRW
ActiveSheet.PivotTables(wsPivotTableName).PivotSelect _
"'Master Supplier'[Beispiel4,Beispiel5,Beispiel6]", xlDataAndLabel, True
Selection.Group
With ActiveSheet.PivotTables(wsPivotTableName).PivotFields("Master Supplier2").PivotItems("Gruppe2")
.Caption = "WIR"
.Position = 1
End With
FailureGroupMasterSupplierTRW:
[...]

Das funktioniert an und für sich ganz gut, allerdings möchte ich eigentlich lieber zunächst auslesen, wie viele Elemente selektiert wurden und bei Anzahl größer 1 gruppieren und ansonsten nicht.
Im oben genannten Beispiel kann es beispielsweise vorkommen, dass die Gruppe 2 nur "Beispiel1" enthält und dieses eine Element für sich genommen nicht gruppiert werden kann.
Außerdem habe ich noch das Problem, dass ich eigentlich gleich bei Gruppenerstelleung die Gruppe benennen möchte und nicht erst die "Gruppe 1" generiert wird und ich diese dann umbenenne.
Ganz schön viele Probleme, aber ich hoffe jemand von euch kann mir helfen.
Wenn ich mich nicht an irgendwelche Regeln hier gehalten habe, bitte ich dies zu entschuldigen (ein Hinweis wäre hilfreich, dass es nicht wieder vorkommt).
Vielen herzlichen Dank euch allen für eure Hilfe.
Grüße
Markus

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Gruppierung - Fehler bei einem Element abfange
05.11.2014 14:48:57
fcs
Hallo Markus,
die Gruppierung zu steuern wird relativ kompliziert.
Einfacher wäre es, wenn du in den Quelldaten eine Spalte/Feld einfügen könntest, um WIR/IHR bei den Mastersuppliern einzutragen.
Die Änderung der Beschriftung kann man meines Wissens nicht anders realiiseren, als den automatisch generierten Gruppennamen nachträglich umzubenennen.
Gruß
Franz
Sub aa()
Dim arrIHR, arrWIR, intWIR, intIHR, strIHR As String, strWIR As String
Dim pvItem As PivotItem, varItem
Dim pvTab As PivotTable
wsPivotTableName = 1 '### Testzeile ###
arrIHR = Array("Beispiel1", "Beispiel2", "Beispiel3") 'IHR-Pivotitems
arrWIR = Array("Beispiel4", "Beispiel5", "Beispiel6") 'WIR-Pivotitems
Set pvTab = ActiveSheet.PivotTables(wsPivotTableName)
For Each pvItem In pvTab.PivotFields("Master Supplier").PivotItems
For Each varItem In arrIHR
If pvItem.Name = varItem Then
intIHR = intIHR + 1
strIHR = strIHR & "," & varItem
Exit For
End If
Next
For Each varItem In arrWIR
If pvItem.Name = varItem Then
intWIR = intWIR + 1
strWIR = strWIR & "," & varItem
Exit For
End If
Next
Next
'On Error GoTo FailureGroupMasterSupplierCompetitor
If intIHR > 1 Then
strIHR = Mid(strIHR, 2)
pvTab.PivotSelect "'Master Supplier'[" & strIHR & "]", xlDataAndLabel, True
Selection.Group
pvTab.PivotFields("Master Supplier2"). _
PivotItems("Gruppe1").Caption = "IHR"
End If
'FailureGroupMasterSupplierCompetitor:
'Err.Clear
'On Error GoTo FailureGroupMasterSupplierTRW
If intWIR > 1 Then
strWIR = Mid(strWIR, 2)
pvTab.PivotSelect "'Master Supplier'[" & strWIR & "]", _
xlDataAndLabel, True
Selection.Group
With pvTab.PivotFields("Master Supplier2").PivotItems("Gruppe2")
.Caption = "WIR"
.Position = 1
End With
End If
'FailureGroupMasterSupplierTRW:
End Sub

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige