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

Pivot-Filter über Zellinhalt steuern

Forumthread: Pivot-Filter über Zellinhalt steuern

Pivot-Filter über Zellinhalt steuern
10.06.2009 17:04:21
Thorsten
Hallo liebe Experten,
ich habe jetzt schon längere Zeit das Forum durchsucht, aber irgendwie nicht die richtigen Ansätze gefunden um mein Problem selbst in den Griff zu kriegen.
Ich habe in Excel eine Datenbasis (Blatt "Daten"), die ich mit Pivot (Blatt "PIVOT") auswerte. Diese Pivotdaten sind die Grundlage für weitere Berechnungen auf einem weiteren Blatt ("AUSW").
Auf dem Blatt "AUSW" möchte ich nun eine Zelle ändern um den Filter der Pivottabelle einzustellen. Gleichzeitig soll natürlich alles aktualisiert werden. Außerdem sollen bei einem Fehler oder Löschen der Zelle ALLE Filter einer Pivottabelle zurückgesetzt werden.
Ich habe mal eine sehr vereinfachte Version meines Problems hochgeladen.
https://www.herber.de/bbs/user/62352.xls
Wie kann ich es anstellen, dass es wie beschrieben klappt. Wie ich euch kenne habt ihr das in 10min. erledigt. :)
Vielen Dank im Voraus
Thorsten
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pivot-Filter über Zellinhalt steuern
10.06.2009 17:20:41
NoNet
Hallo Thorsten,
knapp 3 Minuten waren es ;-) :
diesen Code in das Klassenmodul des Tabellenblattes "AUSW" kopieren :
VBA-Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    Call PivAendern
End Sub
Diesen Code in ein allgemeines Modul (z.B. "Modul1") kopieren :
VBA-Code:
Sub PivAendern()
    With Sheets("PIVOT").PivotTables(1)
        .PivotFields("Daten1").CurrentPage = Sheets("AUSW").[B1].Value
        .PivotCache.Refresh
    End With
End Sub
Gruß, NoNet
AW: Pivot-Filter über Zellinhalt steuern
Thorsten

Hallo NoNet,
erstmal sorry für die späte Rückmeldung und danke für die 3-Minuten-Antwort ... :) .. Checker!
Im ersten Versuch klappt das soweit. Habs noch nicht ganz hinbekommen das auf meine Anwendung zu übertragen, aber Filter setzen funktioniert.
Wie kriege ich es aber hin, dass der Filter zurück gesetzt wird (oder wahlweise ALLE Filter - die Pivot ist mehrfach gefiltert) wenn ich die Zelle lösche?
Morgen Früh werde ich mal ausprobieren wie ich das in meine Tabelle eingebunden kriege, aber diese Antwort fehlt mir noch. Wahrscheinlich werde ich noch ein paar Fragen dazu stellen im Laufe der Verarbeitung. Wäre schön wenn Du dran bleibst ... :)
Dankbaren Gruss so far
Thorsten
AW: Pivot-Filter über Zellinhalt steuern
Thorsten

Hab mit der Lösung als Ansatz mittlerweile einen Weg gefunden.
Vielen dank!
Gruss
Thorsten
Anzeige
AW: Pivot-Filter über Zellinhalt steuern
11.06.2009 01:09:55
Thorsten
Hallo NoNet,
erstmal sorry für die späte Rückmeldung und danke für die 3-Minuten-Antwort ... :) .. Checker!
Im ersten Versuch klappt das soweit. Habs noch nicht ganz hinbekommen das auf meine Anwendung zu übertragen, aber Filter setzen funktioniert.
Wie kriege ich es aber hin, dass der Filter zurück gesetzt wird (oder wahlweise ALLE Filter - die Pivot ist mehrfach gefiltert) wenn ich die Zelle lösche?
Morgen Früh werde ich mal ausprobieren wie ich das in meine Tabelle eingebunden kriege, aber diese Antwort fehlt mir noch. Wahrscheinlich werde ich noch ein paar Fragen dazu stellen im Laufe der Verarbeitung. Wäre schön wenn Du dran bleibst ... :)
Dankbaren Gruss so far
Thorsten
Anzeige
AW: Pivot-Filter über Zellinhalt steuern
12.06.2009 12:27:45
Thorsten
Hab mit der Lösung als Ansatz mittlerweile einen Weg gefunden.
Vielen dank!
Gruss
Thorsten
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Pivot-Filter über Zellinhalt steuern


Schritt-für-Schritt-Anleitung

Um einen Pivot-Filter über den Zellinhalt in Excel zu steuern, kannst du folgende Schritte ausführen:

  1. Öffne dein Excel-Dokument und navigiere zum Blatt "AUSW", wo du die Zelle hast, die den Filter steuern soll.

  2. Wechsel in den Visual Basic for Applications (VBA) Editor. Dies kannst du mit ALT + F11 tun.

  3. Füge den folgenden Code ins Klassenmodul des Blattes "AUSW" ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Call PivAendern
    End Sub
  4. Füge den folgenden Code in ein allgemeines Modul (z.B. "Modul1") ein:

    Sub PivAendern()
       With Sheets("PIVOT").PivotTables(1)
           .PivotFields("Daten1").CurrentPage = Sheets("AUSW").[B1].Value
           .PivotCache.Refresh
       End With
    End Sub
  5. Schließe den VBA-Editor und kehre zu deinem Excel-Dokument zurück.

  6. Teste die Funktionalität: Ändere den Wert in Zelle B1 auf dem Blatt "AUSW", um den Pivot-Filter zu setzen.


Häufige Fehler und Lösungen

  • Fehler: Der Pivot-Filter ändert sich nicht.

    • Lösung: Stelle sicher, dass die Zelle, die du verknüpfen möchtest, den richtigen Wert enthält und dass die Pivot-Tabelle auf den richtigen Datenbereich zugreift.
  • Fehler: Alle Filterwerte werden nicht zurückgesetzt.

    • Lösung: Um alle Filter zurückzusetzen, kannst du den folgenden Code in dein Modul einfügen:
    Sub PivotZuruecksetzen()
       Dim pf As PivotField
       For Each pf In Sheets("PIVOT").PivotTables(1).PivotFields
           pf.ClearAllFilters
       Next pf
    End Sub

Alternative Methoden

Eine weitere Möglichkeit, um den Pivot-Filter mit einer Zelle zu verknüpfen, ist die Verwendung von Excel-Formeln. Du kannst eine Hilfsspalte in deiner Datenquelle erstellen, die die Filterkriterien aus der Zelle ausliest. Diese Spalte kann dann in der Pivot-Tabelle verwendet werden.


Praktische Beispiele

Beispiel: Angenommen, du hast in der Zelle B1 auf dem Blatt "AUSW" den Wert "Verkauf". Du möchtest, dass die Pivot-Tabelle auf dem Blatt "PIVOT" nur die Daten für diesen bestimmten Verkaufswert anzeigt. Mit dem oben genannten VBA-Code wird dies automatisch aktualisiert, wenn du den Wert in B1 änderst.


Tipps für Profis

  • Verknüpfung von mehreren Zellen: Wenn du mehrere Zellen zur Filterung verwenden möchtest, kannst du die Werte in einer String-Variable zusammenfassen und den Filter entsprechend setzen.

  • Pivot-Tabelle erweitern: Du kannst die Pivot-Tabelle um weitere Filter erweitern, indem du zusätzliche PivotFields im With-Block hinzufügst.

  • Automatisierung: Überlege, ob du das automatische Zurücksetzen der Filterwerte programmieren möchtest, falls die Zelle gelöscht wird.


FAQ: Häufige Fragen

1. Wie kann ich einen Pivot-Filter aus einer Zelle auslesen?
Du kannst die Zelle direkt im VBA-Code referenzieren, wie im Schritt zur Implementierung des Codes gezeigt.

2. Was passiert, wenn ich die Zelle lösche?
Wenn die Zelle gelöscht wird, wird der Filter nicht automatisch zurückgesetzt, es sei denn, du implementierst den zusätzlichen Code zum Zurücksetzen der Filter.

3. Kann ich mehrere Pivot-Filter gleichzeitig setzen?
Ja, das ist möglich, indem du mehrere PivotFields in deinem VBA-Code ansprechen und aktualisieren kannst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige