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

PivotField.ShowDetail: Debugger bei IF Prüfung

PivotField.ShowDetail: Debugger bei IF Prüfung
20.07.2013 19:52:52
Andreas
Hallo Excelkenner,
ich habe heute ein Phänomen bemerkt, von dem ich davon ausgehe, das es ein Bug ist. Um der Korrektheit und des Lernens willen möchte ich aber jede falsche Mutmaßung meinerseits ausschließen. Das Szenario: Ich habe ein PivotField dessen ShowDetail Eigenschaft ich steuern möchte. Da ich dies nicht pauschal ausführen möchte, sondern nur bei Bedarf, habe ich eine IF Prüfung vorgesehen. Diese verursacht jedoch den Debugger. Laut Office Hilfe hat der Boolean Wert von ShowDetail jedoch Lese-/ Schreibzugriff. Wenn ich die Eigenschaft setze und zuvor nicht auslese, dann läuft alles durch. Ist dies ein Bug und die MS Office Hilfe ist falsch? Oder habe ich einen Denkfehler?
https://www.herber.de/bbs/user/86482.xlsm
Vielen Dank für Eure Aufmerksamkeit.
Herzliche Grüße aus Berlin, Andreas Hanisch

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

Betreff
Datum
Anwender
Anzeige
AW: PivotField.ShowDetail: Debugger bei IF Prüfung
20.07.2013 21:33:36
Luschi
Hallo Albrecht,
es ist schon eine Crux wenn, man in der OOP zwar etwas festlegen kann, will man aber den eingestellten Zustand abfragen, läuft es nicht so wie gedacht.
In der Excel-Vba-Hilfe steht: "Beim PivotItem-Objekt (...) wird diese Eigenschaft auf True festgelegt, wenn die Details des Elements angezeigt werden."
Deshalb klappt es nur so:

Sub PivotFieldShowDetails()
With ActiveSheet.PivotTables(1).PivotFields("Material")
'Läuft
.ShowDetail = False
'Läuft nun auch
If Not .PivotItems(1).ShowDetail Then
.ShowDetail = True
End If
End With
End Sub
Gruß von Luschi
aus klein-Paris

Anzeige
AW: PivotField.ShowDetail: Debugger bei IF Prüfung
20.07.2013 22:05:43
Andreas
Hallo Luschi,
danke für Deine Antwort. Mit diesem WorkAround könnte es gehen, aber ich habe noch zwei Verständnisfragen: 1. Was ist eine "OOP"? 2. Da man die PivotItems in ihrem ShowDetails alle separat steuern kann, könnte der Fall auftreten, daß alle PivotItems ShowDetail = True haben und nur das Erste Item auf False steht. Dann würde die Prüfung des ersten Elements ein nicht ganz korrektes Ergebnis liefern, oder? Ich gebe zu, das ist ein sehr unwahrscheinlicher Fall...
Und da dieser Fall so unwahrscheinlich ist, werde ich Deinen Ansatz gleich noch einsetzen! Danke für Deine Hilfe!
Beste Grüße, Andreas Hanisch

Anzeige
AW: PivotField.ShowDetail: Debugger bei IF Prüfung
20.07.2013 22:43:42
Luschi
Hallo Andreas,
dann mach es so:

Sub PivotFieldShowDetails()
Dim pI As PivotItem, ok As Boolean
With ActiveSheet.PivotTables(1).PivotFields("Material")
For Each pI In .PivotItems
If pI.ShowDetail = False Then
ok = True
Exit For
End If
Next pI
Set pI = Nothing
If ok Then
.ShowDetail = True
End If
End With
End Sub
Gruß von Luschi
aus klein-Paris
PS: OOP - objektorientierte Programmierung

AW: PivotField.ShowDetail: Debugger bei IF Prüfung
21.07.2013 09:07:56
Andreas
Hallo Luschi,
vielen Dank für die klärende Antwort. Über eine Schleife mit Exit For zu gehen löst das Problem komplett! Danke auch für die Erläuterung der Abkürzung - werd ich mir merken.
Beste Grüße und einen schönen Sonntag, Andreas Hanisch
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige