Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1048to1052
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

s: Marko um Pivottabellen zu automatisieren

s: Marko um Pivottabellen zu automatisieren
15.02.2009 10:47:00
sven
Hallo Zusammen,
ich habe folgendes Problem.
Ich habe eine Pivottabelle. In dieser habe ich in den Zeilenfelder die Möglichkeit eine Mehrfachauswahl zu treffen. Ich möchte nun diese Mehrfachauswahl auch für andere Pivottabellen im selben,sowie in anderen sheets per Makro übertragen. Ist das überhaupt möglich? Wenn ja wie könnte das Makro aussehen.
Kurze info
Die Pivottabelle mit der einstellung ist im Sheet "Start" und heißt PivotTable4 und das Auswahlfeld heißt "Problemdatum" .
Ich möchte diese Einstellung nun für die Pivottabelle im sheet "Overview" in PivotTable6 übernehmen...das Auswahlfeld hat den selben Namen "Problemdatum"
ich versuche schon ewig rum und googeln hat nicht viel gebracht .Bis jetzt habe ich einen makro für die seitenfelder hinbekommen..das war relativ einfach....aber bei der Mehrfachauswahl fehlt mir das Wissen...bin noch blutiger Anfänger ;o)
Für einen Vorschlag,wie das Makro aussehen könnte wär ich wahnsinnig dankbar.....Ich danke euch schonmal. LG dbrauni
Ich hoffe ihr könnt mir helfen.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: s: Marko um Pivottabellen zu automatisieren
16.02.2009 15:38:00
fcs
Hallo Sven,
hier mein Vorschlag.
Nach meinen zum Teil schlechten Erfahrungen mit dem Einblenden von Pivot-Feld-Items hier mein Vorschlag, der zumindest bei meiner Test-Konfiguration funktionierte.
Gruß
Franz

'Erstellt mit Excel 2003, MS Office 2003, Windows XP
Sub PivotTabSynchronisieren()
Dim pvTabMaster As PivotTable, pvTabSlave  As PivotTable
Dim pvFieldMaster As PivotField, pvFieldSlave As PivotField
Dim pvItemMaster As PivotItem, pvItemSlave As PivotItem
Dim bolHide As Boolean, intFehler As Integer
On Error GoTo Fehler
Set pvTabMaster = Worksheets("Start").PivotTables("PivotTable4")
Set pvTabSlave = Worksheets("Overview").PivotTables("PivotTable6")
Set pvFieldMaster = pvTabMaster.PivotFields("Problemdatum")
Set pvFieldSlave = pvTabSlave.PivotFields("Problemdatum")
'Alle Items des Slave Objekts anzeigen
For Each pvItemSlave In pvFieldSlave.PivotItems
intFehler = 1
If pvItemSlave.Visible = False Then pvItemSlave.Visible = True
Next
'Nicht anzuzeigende Items ausblenden
For Each pvItemSlave In pvFieldSlave.PivotItems
bolHide = True
For Each pvItemMaster In pvFieldMaster.VisibleItems
intFehler = 2
If pvItemMaster.Name = pvItemSlave.Name Then bolHide = False: Exit For
Next
If bolHide = True Then
pvItemSlave.Visible = False
End If
Next
Fehler:
With Err
If .Number  0 Then
If .Number = 1004 Then 'fängt nicht mehr existierendes Pivotelement _
ab dass angezeigt werden soll
If intFehler = 1 Then
pvItemSlave.Delete
intFehler = 0
Resume Next
ElseIf intFehler = 2 Then
MsgBox "In der Slave-Pivottable können keine weiteren " _
& "Items ausgeblendet werden!"
End If
Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End If
End If
End With
End Sub


Anzeige
AW: s: Marko um Pivottabellen zu automatisieren
16.02.2009 18:21:00
Sven
Hallo, das hat ja schonmal super geklappt !
Nun habe ich nicht nur eine Pivottabelle die diese Einstellung übernehmen soll sondern mehrere. Kannst du mir da vielleicht noch nen Tip geben wie ich das angleiche...zumindest für eine weitere?
Ichhabs versucht...aber bekomme es nicht zum Laufen. Ich danke schonmal recht herzlich.....das ist einfach Super hier.
Gruß Sven
AW: s: Marko um Pivottabellen zu automatisieren
16.02.2009 18:22:00
Sven
Hallo, das hat ja schonmal super geklappt !
Nun habe ich nicht nur eine Pivottabelle die diese Einstellung übernehmen soll sondern mehrere. Kannst du mir da vielleicht noch nen Tip geben wie ich das angleiche...zumindest für eine weitere?
Ichhabs versucht...aber bekomme es nicht zum Laufen. Ich danke schonmal recht herzlich.....das ist einfach Super hier.
Gruß Sven
Anzeige
AW: s: Marko um Pivottabellen zu automatisieren
16.02.2009 21:18:00
fcs
Hallo Sven,
wenn du in Serienproduktion die Pivottabellen abgleichen willst, dann empfiehlt sich der Split in eine Haupt und eine Subroutine.
Gruß
Franz

'Erstellt mit Excel 2003, MS Office 2003, Windows XP
Sub PivotTabSynchronisieren()
Dim pvTabMaster As PivotTable, pvTabSlave  As PivotTable
On Error GoTo Fehler
'Master-Pivot setzen
Set pvTabMaster = Worksheets("Start").PivotTables("PivotTable4")
'Slave-Pivot Nr. 1 setzen
Set pvTabSlave = Worksheets("Overview").PivotTables("PivotTable6")
'Subroutine zum Abgleich der Items aufrufen
Call PivotSynchronisieren(pvFieldMaster:=pvTabMaster.PivotFields("Problemdatum"), _
pvFieldSlave:=pvTabSlave.PivotFields("Problemdatum"))
'Slave-Pivot Nr. 2 setzen
Set pvTabSlave = Worksheets("Overview").PivotTables("PivotTable7")
'Subroutine zum Abgleich der Items aufrufen
Call PivotSynchronisieren(pvFieldMaster:=pvTabMaster.PivotFields("Problemdatum"), _
pvFieldSlave:=pvTabSlave.PivotFields("Problemdatum"))
Fehler:
With Err
If .Number  0 Then
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End If
End With
End Sub
Sub PivotSynchronisieren(pvFieldMaster As PivotField, pvFieldSlave As PivotField)
Dim pvItemMaster As PivotItem, pvItemSlave As PivotItem
Dim bolHide As Boolean, intFehler As Integer
'Synchronisiert die gewählten Item zwischen zwei Pivottabellen
On Error GoTo Fehler
'Alle Items des Slave Objekts anzeigen
For Each pvItemSlave In pvFieldSlave.PivotItems
intFehler = 1
If pvItemSlave.Visible = False Then pvItemSlave.Visible = True
Next
'Nicht anzuzeigende Items ausblenden
For Each pvItemSlave In pvFieldSlave.PivotItems
bolHide = True
For Each pvItemMaster In pvFieldMaster.VisibleItems
intFehler = 2
If pvItemMaster.Name = pvItemSlave.Name Then bolHide = False: Exit For
Next
If bolHide = True Then
pvItemSlave.Visible = False
End If
Next
Fehler:
With Err
If .Number  0 Then
If .Number = 1004 Then 'fängt nicht mehr existierendes Pivotelement _
ab dass angezeigt werden soll
If intFehler = 1 Then
pvItemSlave.Delete
intFehler = 0
Resume Next
ElseIf intFehler = 2 Then
MsgBox "In der Slave-Pivottable """ & pvFieldSlave.Parent.Name _
& """ können keine weiteren Items ausgeblendet werden!"
End If
Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
End If
End If
End With
End Sub


Anzeige
AW: s: Marko um Pivottabellen zu automatisieren
16.02.2009 23:01:00
sven
DAs funktioniert einwandfrei.....Ich bin beeindruckt.
Ich danke vielmals für so kompetente Hilfe....recht herzlichen Dank.
Dieses Forum ist Spitze...
Nochmals vielen Dank !
Gruß Sven

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige