Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Pivot Bericht über VBA ansprechen

Pivot Bericht über VBA ansprechen
Karsten
Hallo liebe Excel Freunde,
ich hätte folgendes Problem.
In einem Pivotbericht soll nur eine bestimmte StationsNr im PivotFields("StationNr") ausgewählt werden. Ich habe dies über den Marco Recorder aufgenommen. Dies funktioniert aber nicht.
Zum Weiteren ist die Nummer 2303200 auch in einer Variablen hinterlegt, diese heißt TurbineID. Wie muss ich dies einbinden das das automatisch funktioniert?
ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh 'Pivot- Tabelle aktualisieren
With ActiveSheet.PivotTables("PivotTable1").PivotFields("StationNr")
.PivotItems("(blank)").Visible = False
.PivotItems("2303200").Visible = False
End With
....
Danke im Vorraus
Anzeige
AW: Pivot Bericht über VBA ansprechen
07.10.2010 09:50:41
Luschi
Hallo Karste,
gerade bei Pivot-Vba kommt es auf korrekte Ansprache der Pivot-Felder an.
Wenn Du eine kleine Demodatei bereitstellst, sollte man damit besser zurecht kommen als
irgend welche Beschreibungen.
Gruß von Luschi
aus klein-Paris
AW: Pivot Bericht über VBA ansprechen
07.10.2010 18:26:12
Karsten
Hallo Lusch,
danke das Du geantwortet hast ich hatte schon Sorge es würde sich keiner melden.
Ich habe die Datei hochgeladen:
https://www.herber.de/bbs/user/71808.zip
Kannst Du Dir das mal anschauen, Es wäre toll wenn man die Möglichkeit hätte mehrere Turbine ID (von - bis) zu filtern. Bekommst Du das hin?
a) alle anzeigen
b) 1 anzeigen
c) von bis anzeigen
Danke im vorraus!
Gruß Karsten
Anzeige
AW: Pivot Bericht über VBA ansprechen
07.10.2010 18:29:02
Karsten
Entschuldigung,
ich meinte natürlich Luschi, abr das i auf meinem Laptop funktioniert nicht mehr so gut :-) brauch mal nen Neuen.
Karsten
AW: Pivot Bericht über VBA ansprechen
08.10.2010 09:28:57
Luschi
Hallo Karsten,
ich kann leider keine Lösung schicken, da die Pivot-Tabelle ständig nach den Quelldaten sucht, um Filterungen durchzuführen. Sobald ich ein Pivot-Feld ansprechen will, kommt diese Meldung:
Userbild
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Pivot Bericht über VBA ansprechen
08.10.2010 18:01:16
Karsten
Hi Luschi,
das ist merkwürdig, die Rohdaten waren m.E. direkt links neben der Pivottabelle. Ich habe den bericht noch einmal neu verlinkt unter:
https://www.herber.de/bbs/user/71819.zip
kannst Du die Datei jetzt herunterladen.
Danke für die Hilfe und sorry für das Missgeschick.
Gruß Karsten
Anzeige
AW: Pivot Bericht über VBA ansprechen
08.10.2010 20:25:55
Luschi
Hallo Karsten,
habe in Vba-Modul1 drei Makros hinterlegt, die helfen können, Pivottabellen-Probleme zu beseitigen.
Besonders das dritte 'DeleteOldPivotItemsWB' ist sehr zu empfehlen (mehr Infos dazu im Modul).
Wahrscheinlich ist auch Deine Originaltabelle davon betroffen so wie die bereitgestellte Testdatei.
Deshalb funktionierte auch der von Dir aufgezeichnete Vba-Code nicht, obwohl er richtig ist.
Kopiere also alle 3 Makros und starte sie dann; fange mit dem 3. Makro an.
Im Vba-Module2 ist dann das von Dir angeforderte Beispiel.
https://www.herber.de/bbs/user/71821.zip
Good luck und Gruß von Luschi
aus klein-Paris
Anzeige
AW: Pivot Bericht über VBA ansprechen
11.10.2010 17:06:42
Karsten
Hi Luschi,
danke für Deine Hilfe, es hat prima funktioniert jetzt kann ich ja mit der kleiner gleich und größer gleich Regel alle die Turbine ID selektieren. Seine Programmierung setzt natürlich vorraus, dass im Pivotbericht von vornherein alle TurbineID selektiert wurden und nichts abgewählt wurde sonst funktioniert das ganze nicht. Wie geht das nun das alle Turbine ID selektiert sind. Gibt es da vielleicht einen Befehl wie Select all - unabhängig davon ob diese alle in der Datenquelle zur Verfügung gestellt sind oder nicht.
Gruß aus Bremen nach Leipzig (meine Heimat)?
Anzeige
AW: Pivot Bericht über VBA ansprechen
12.10.2010 08:53:53
Luschi
Hallo Karsten,
alle Pivot-Einträge eines Fesldes zu aktivieren geht so:

Sub alle_PivotItem_Anzeigen()
Dim pi As PivotItem
'Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
With ActiveSheet.PivotTables("PivotTable1").PivotFields("StationNr")
'alle Einträge bis auf einen deaktivieren
For Each pi In .PivotItems
pi.Visible = True
Next pi
End With
Set pi = Nothing
'wieder einschalten
Application.ScreenUpdating = True
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Pivot Bericht über VBA ansprechen


Schritt-für-Schritt-Anleitung

  1. Pivot-Tabelle aktualisieren

    ActiveSheet.PivotTables("PivotTable1").PivotCache.Refresh
  2. Bestimmte StationNr im Pivot-Feld auswählen

    With ActiveSheet.PivotTables("PivotTable1").PivotFields("StationNr")
       .PivotItems("(blank)").Visible = False
       .PivotItems("2303200").Visible = True ' Hier die TurbineID einfügen
    End With
  3. Alle Pivot-Items anzeigen Wenn Du alle TurbineIDs in der Pivot-Tabelle aktivieren möchtest, kannst Du folgendes Makro verwenden:

    Sub alle_PivotItem_Anzeigen()
       Dim pi As PivotItem
       Application.ScreenUpdating = False
       With ActiveSheet.PivotTables("PivotTable1").PivotFields("StationNr")
           For Each pi In .PivotItems
               pi.Visible = True
           Next pi
       End With
       Application.ScreenUpdating = True
    End Sub

Häufige Fehler und Lösungen

  • Problem: Fehlermeldung bei der Filterung

    • Lösung: Stelle sicher, dass die Rohdaten direkt neben der Pivot-Tabelle liegen. Wenn die Daten nicht gefunden werden, überprüfe die Quelle der Pivot-Tabelle.
  • Problem: PivotItems nicht sichtbar

    • Lösung: Verwende das Makro alle_PivotItem_Anzeigen, um alle Einträge in deinem Pivot-Feld sichtbar zu machen.

Alternative Methoden

  • Direktes Filtern über die Benutzeroberfläche: Du kannst die Filteroptionen in der Pivot-Tabelle direkt nutzen, um bestimmte Werte auszuwählen oder auszublenden.

  • Verwendung von Slicern: Slicer sind eine benutzerfreundliche Methode, um Daten in Pivot-Tabellen zu filtern. Sie ermöglichen eine visuelle Auswahl der Daten, die Du anzeigen möchtest.


Praktische Beispiele

  • Beispiel 1: Filtern nach einer bestimmten TurbineID

    Dim TurbineID As String
    TurbineID = "2303200"
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("StationNr")
      .PivotItems("(blank)").Visible = False
      .PivotItems(TurbineID).Visible = True
    End With
  • Beispiel 2: Mehrere TurbineIDs filtern

    Dim i As Integer
    Dim TurbineIDs As Variant
    TurbineIDs = Array("2303200", "2303201", "2303202")
    
    With ActiveSheet.PivotTables("PivotTable1").PivotFields("StationNr")
      For i = LBound(TurbineIDs) To UBound(TurbineIDs)
          .PivotItems(TurbineIDs(i)).Visible = True
      Next i
    End With

Tipps für Profis

  • Verwende den VBA-Editor: Nutze den VBA-Editor, um Deine Makros zu testen und anzupassen. Du kannst den Code Schritt für Schritt durchlaufen, um Fehler zu identifizieren.

  • Dokumentiere Deine Makros: Halte eine Dokumentation für Deine VBA-Makros bereit, damit Du die Funktionalitäten schnell verstehen und bei Bedarf anpassen kannst.

  • Nutze die Option Explicit: Füge am Anfang Deiner Module Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert werden. Dies hilft, Fehler zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich mehrere PivotItems gleichzeitig auswählen? Du kannst eine Schleife verwenden, um mehrere Items in Deinem Pivot-Feld sichtbar zu machen, wie im Beispiel alle_PivotItem_Anzeigen gezeigt.

2. Was kann ich tun, wenn die Pivot-Tabelle nicht aktualisiert wird? Überprüfe, ob die Quelldaten richtig verlinkt sind und führe gegebenenfalls einen Refresh der Pivot-Tabelle durch. Stelle sicher, dass die Datenquelle aktuell ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige