Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Definierter Pivotaufbau per VBA - Fehlerroutine

Definierter Pivotaufbau per VBA - Fehlerroutine
26.05.2008 19:33:00
Andreas
Hallo Herber Fans,
ich hatte heute die Idee, einer Pivot Tabelle eine Art „Gedächtnis“ an ihr ursprüngliches Layout zu geben. Also habe ich einmal alle PivotFields mit ihren jeweiligen Positionen ausgelesen und in zwei Listen hinterlegt. RowFields und PageFields. Auf diese Listen greife ich nun mit einem Makro und einer For Schleife zu. Es funktioniert wunderbar – wie aus dem nichts baut sich die PivotTabelle auf. Aber zwei Probleme konnte ich noch nicht lösen:
1. Wie kann ich eine Fehlermeldung abfangen. In der Liste sind die Pivotfeld- Bezeichnungen fix hinterlegt. Wenn sich nun bpsw. Material in den Pivotquelldaten auf Material_TEST geändert wurde, so springt der Debugger an. Über „On Error Resume Next“ konnte ich das abfangen bzw. übergehen. Aber mir wäre lieber, wenn eine Msgbox käme, die mitteilt: „Pivotfeld“ & Range(Zeilenfelder)(i,2) & „konnte nicht gefunden werden!“
Ich wollte dies über IfError(Objekt) realisieren, aber das hat nicht funktioniert. Wie kann das gehen?
2. Sinn macht dieses Vorgehen von hinterlegten PivotLayouts ja nur, wenn ich sie immer „dabei“ habe. Erog muß ich diese in die Person.xls packen. Wenn ich dann andere Pivots aufbauen möchte, bekomm ich aber leider den Fehler, daß er den Range nicht findet. Kann er ja auch nicht, denn die sind in der Person.xls hinterlegt. Wie läßt sich dies lösen?
Im Forum war ich schon mit dem VBA Befehl in der Suche zu Gange, habe aber keinen Ansatz gefunden, der mich weitergebracht hat.
Vielen Dank und Grüße für Eure Ideen und Hinweise.
https://www.herber.de/bbs/user/52635.xls
Grüße, Andreas Hanisch

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

Betreff
Datum
Anwender
Anzeige
AW: Definierter Pivotaufbau per VBA - Fehlerroutin
27.05.2008 15:49:00
fcs
Hallo Andreas,
mit der persönlichen Makroarbeismappe bist du ja schon ein Stück weiter. Die Bereichsnamen muss du dann auch in einer Tabelle dieser Datei anlegen.
Hier auch noch eine Variante für eine Fehlerbehandlung mit Meldung.
Gruß
Franz

Option Explicit
Sub PivotReset()
Dim pvTable As PivotTable
Dim i As Variant
Dim strMsg As String, intFehler As Integer
Dim wksPers As Worksheet
'Tabelle mit Pivot-Information
Set wksPers = Workbooks("Personl.xls").Worksheets("Tabelle1")
'Tabelle1 ist in nächster Zeile der Codename!!!! besser evtl. ActiveSheet
Set pvTable = Tabelle1.PivotTables(1)
pvTable.PivotCache.Refresh
On Error GoTo Fehlerbehandlung
For i = 1 To wksPers.Range("Seitenfelder").Rows.Count
intFehler = 1
With pvTable.PivotFields(wksPers.Range("Seitenfelder")(i, 2).Value)
.Orientation = xlPageField
.Position = wksPers.Range("Seitenfelder")(i, 1).Value
End With
ResumeSeite:
intFehler = 0
Next i
For i = 1 To wksPers.Range("Zeilenfelder").Rows.Count
intFehler = 2
With pvTable.PivotFields(wksPers.Range("Zeilenfelder")(i, 2).Value)
.Orientation = xlRowField
.Position = wksPers.Range("Zeilenfelder")(i, 1).Value
End With
ResumeZeile:
intFehler = 0
Next
'Sprungmarke:
GoTo Benden
Fehlerbehandlung:
strMsg = "Fehler: " & Err.Number & vbLf & Err.Description
Select Case intFehler
Case 1
MsgBox strMsg & vbLf & vbLf & "Nicht gefunden Pivot-Seitenfeld: " _
& wksPers.Range("Seitenfelder")(i, 2).Value
Resume ResumeSeite
Case 2
MsgBox strMsg & vbLf & vbLf & "Nicht gefunden Pivot-Zeilenfeld: " _
& wksPers.Range("Zeilenfelder")(i, 2).Value
Resume ResumeSeite
Case Else
MsgBox strMsg
End Select
Benden:
Set pvTable = Nothing: Set wksPers = Nothing
End Sub


Anzeige
AW: Definierter Pivotaufbau per VBA - Fehlerroutin
27.05.2008 17:11:44
Andreas
Hallo Franz,
wow! Das ist ein Code. Mit meiner heutigen Adressierungserkenntnis in der Personl.xls konnte ich Deinen Code mit den Referenzbereichen dort gut integrieren ;-)
Habe ihn gerade mehrere Male getestet und er lief ohne Beanstandung durch!
Vielen Dank und einen schönen Abend!
Grüße, Andreas

AW: Definierter Pivotaufbau per VBA - Fehlerroutin
27.05.2008 15:54:00
Renee
Hi Andreas,
...ich hatte heute die Idee, einer Pivot Tabelle eine Art „Gedächtnis“ an ihr ursprüngliches Layout zu geben.
...und was ist da anders zur Option Formatierung behalten in den Tabelleoptionen ?
GreetZ Renée

AW: Definierter Pivotaufbau per VBA - Fehlerroutin
27.05.2008 16:19:00
Andreas
Hi Renée,
das war wohl unklar ausgedrückt. Ziel soll es sein, anhand von Listen, in denen die PivotFelder mit ihren Positionen vermerkt sind, aus einer komplett unangetasteten Pivot auf Befehl eine Pivot zu generieren. D.h. jedes Feld für den Row und Page Bereich geht automatisch an seine korrekte Position. Layout war der falsche Begriff. Ich meine mit meinem Vorhaben nicht die Farben, etc. sondern die Struktur und Anordnung der Felder.
Gruß, Andreas
Anzeige

145 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige