Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1000to1004
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

Fehler in Pivot/Show Details;Errorhandling versagt

Fehler in Pivot/Show Details;Errorhandling versagt
18.08.2008 17:03:00
Andreas
Hallo Herber Fans,
ich habe mir in einer Pivottabelle die Funktion Details ein-/ ausblenden über OnKey auf STRG + D gelegt und dazu auch ein Errorhandling in den Code eingebaut. Wenn ich nun mit der aktiven Zelle (Selection) auf dem PivotDatenFeld oder einem PageField positioniert bin, bekomme ich eine Errormeldung. („Die Methode Execute für das Objekt '_CommandBarButton' ist fehlgeschlagen“). Wenn ich auf den genannten Feldern bin und die Funktion Detail einblenden über das Zell Kontextmenü aufrufen möchte, dann ist der entsprechende Button grau hinterlegt. D.h. nicht für dieses Feld vorgesehen. Also dachte ich, den Fehler über „On Error Resume Next“ abfangen zu können. Dieses war leider nicht von Erfolg gekrönt. Ich dachte bisher immer, daß diese On Error Anweisung alles abfängt was so vorkommen kann. Das scheint leider nicht der Fall zu sein.
Wie kann ich den beschriebenen Fehler handhaben?
https://www.herber.de/bbs/user/54710.xls
Vielen Dank für eine zündende Idee.
Grüße, Andreas

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler in Pivot/Show Details;Errorhandling versagt
19.08.2008 13:26:03
fcs
Hallo Andreas,
ich hab die Fehler-Prüfung etwas verfeinert und zusätzlich die Fehlernummer mit in die Prüfungen einbezogen.
Gruß
Franz

Sub Pivot_ShowDetailsOnOff()
Dim cmdBarCntr As CommandBarControl
Dim pvTable As PivotTable
Dim intFehler As Variant
Set pvTable = ActiveSheet.PivotTables(1)
If Selection.Cells.Count > 1 Then Exit Sub
On Error GoTo MoreInnerDetail
intFehler = 1
With pvTable.PivotFields(Selection.Value)
intFehler = 2
If .PivotItems(1).ShowDetail = False Then
Selection.ShowDetail = True
ElseIf .PivotItems(1).ShowDetail = True Then
Selection.ShowDetail = False
End If
intFehler = 0
End With
MoreInnerDetail:
Select Case intFehler
Case 1
'    MsgBox intFehler & ":  " & Err.Number & " " & Err.Description
MsgBox "Bitte Button mit Pivot-Feldname selektieren!"
Case 2
'    MsgBox intFehler & ":  " & Err.Number & " " & Err.Description
Select Case Err.Number
Case 13
MsgBox "Detail-Ein-/Ausblenden für dieses Pivot-Feld nicht möglich!"
Case 1004
Set cmdBarCntr = Application.CommandBars.FindControl(ID:=462)
cmdBarCntr.Execute
Case Else
MsgBox intFehler & ":  " & Err.Number & " " & Err.Description
End Select
End Select
End Sub


Anzeige
AW: Fehler in Pivot/Show Details;Errorhandling versagt
19.08.2008 14:34:25
Andreas
Hallo Franz,
schön, Dich wieder hier im Forum zu sehen!
Ich habe Deinen Code eingesetzt und getesetet. Für das PivotDataField funktinoiert das Errorhandling, jedoch leider nicht für den Fall, daß ich auf PageFields positioniert bin. Dann färbt er folgende Zeile ein:
"cmdBarCntr.Execute"
Bei der Analyse bin ich auch über den "Case 13" in der IntFehler Behandlung gestolpert. Ich konnte mir nicht erklären, wo dieser Case definiert wird.
Kannst Du mir da noch einmal einen Rat geben?
Danke Dir.
Viele Grüße, Andreas

AW: Fehler in Pivot/Show Details;Errorhandling versagt
20.08.2008 09:18:00
fcs
Hallo Andreas,
dann muss zusätzlich geprüft werden, ob die selektierte Zelle einen Seitenfeld-Namen enthält. Hoffe das klapt jetzt.
Gruß
Franz

Sub Pivot_ShowDetailsOnOff()
Dim cmdBarCntr As CommandBarControl
Dim pvTable As PivotTable
Dim intFehler As Variant
Dim objPVField As PivotField
Set pvTable = ActiveSheet.PivotTables(1)
If Selection.Cells.Count > 1 Then Exit Sub
On Error GoTo MoreInnerDetail
intFehler = 1
With pvTable.PivotFields(Selection.Value)
intFehler = 2
If .PivotItems(1).ShowDetail = False Then
Selection.ShowDetail = True
ElseIf .PivotItems(1).ShowDetail = True Then
Selection.ShowDetail = False
End If
intFehler = 0
End With
MoreInnerDetail:
Select Case intFehler
Case 1
'    MsgBox intFehler & ":  " & Err.Number & " " & Err.Description
MsgBox "Bitte Button mit Pivot-Feldname selektieren!"
Case 2
'    MsgBox intFehler & ":  " & Err.Number & " " & Err.Description
Select Case Err.Number
Case 13
MsgBox "Detail-Ein-/Ausblenden für dieses Pivot-Feld nicht möglich!"
Case 1004
For Each objPVField In pvTable.PageFields
If Selection.Value = objPVField.Name Then
MsgBox "Für Seitenfelder können keine Details ein-/ausgeblendet werden!"
Exit Sub
End If
Next
Set cmdBarCntr = Application.CommandBars.FindControl(ID:=462)
cmdBarCntr.Execute
Case Else
MsgBox intFehler & ":  " & Err.Number & " " & Err.Description
End Select
End Select
End Sub


Anzeige
AW: Fehler in Pivot/Show Details;Errorhandling versagt
22.08.2008 21:52:28
Andreas
Hallo Franz,
entschuldige die späte Antwort. Ich hatte erst nun Zeit Deinen Code zu testen und mir etwas genauer anzusehen. Er läuft wunderbar. Mir ist nun auch klar, was es mit den Case Selects auf sich hat, die nirgendwo definiert sind. Sie beziehen sich auf die Error Number, einem eigenständigen VBA Objekt! Also habe ich gleich noch ein bißchen dazu in der VBA Hilfe gelesen. Das in Verbindung mit dem Prüfen auf die Orientation bringt für ne Menge Pivot Makros neue Ideen! Danke Dir für Deine Unterstützung und neue Inspiration.
Habe ein schönes Wochenende.
Grüße, Andreas

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige