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

Datenschnitt über eine Zelle Filtern

Forumthread: Datenschnitt über eine Zelle Filtern

Datenschnitt über eine Zelle Filtern
14.03.2019 16:04:42
Dieter
Hallo zusammen,
ich stehe vor folgendem Problem:
In einer Zelle E3 soll ein Konto eingegeben werden z.B. 500000
Sobald die Zelle geändert wird soll bei einem Datenschnitt der auf eine Pivottabelle beruht, der Filter auf 500000 gesetzt werden.
Das ist mein Code, ich habe mich bereits halb tot gegoogelt. Leider gibt es keine Wirkung wenn ich die Zelle E3 verändere.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.adress = "$E$3" Then
ActiveWorkbook.SlicerCaches("Datenschnitt_Sachkonto").ClearManualFilter
ActiveWorkbook.SlicerCaches("Datenschnitt_Sachkonto").SlicerItems(Range("E3").Value). _
Selected = True
End If
End Sub

Mit freundlichen Grüße,
Dieter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenschnitt über eine Zelle Filtern
14.03.2019 18:21:10
Luschi
Hallo Dieter,
bei mir klappt das so:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i1 As Integer, i2 As Integer
If Target.Address = "$E$3" Then
Application.ScreenUpdating = False
With ActiveWorkbook.SlicerCaches("Datenschnitt_Sachkonto")
.ClearManualFilter
i1 = .SlicerItems.Count
For i2 = 1 To i1
If .SlicerItems(i2).Caption  CStr(Target.Value) Then
.SlicerItems(i2).Selected = False
End If
Next i2
End With
Application.ScreenUpdating = True
End If
End Sub
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Datenschnitt über eine Zelle Filtern
15.03.2019 09:45:26
Dieter
Hallo Luschi,
vielen Dank für die Mühe, es funktioniert genau so wie es sein soll.
Super!
Grüße,
Dieter
;
Anzeige
Anzeige

Infobox / Tutorial

Datenschnitt über eine Zelle filtern in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und gehe zu dem Arbeitsblatt, in dem du den Datenschnitt einfügen möchtest.

  2. Füge einen Datenschnitt hinzu, der auf deiner Pivot-Tabelle basiert. Klicke dazu auf die Pivot-Tabelle und wähle „Analyse“ > „Datenschnitt einfügen“.

  3. Erstelle ein VBA-Skript, das die Filterung steuert. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  4. Füge den folgenden Code in das entsprechende Arbeitsblattmodul ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$E$3" Then
           Application.ScreenUpdating = False
           With ActiveWorkbook.SlicerCaches("Datenschnitt_Sachkonto")
               .ClearManualFilter
               Dim i1 As Integer, i2 As Integer
               i1 = .SlicerItems.Count
               For i2 = 1 To i1
                   If .SlicerItems(i2).Caption <> CStr(Target.Value) Then
                       .SlicerItems(i2).Selected = False
                   End If
               Next i2
           End With
           Application.ScreenUpdating = True
       End If
    End Sub
  5. Speichere den Code und schließe den VBA-Editor.

  6. Gib einen Wert in Zelle E3 ein, um zu testen, ob der Datenschnitt entsprechend gefiltert wird.


Häufige Fehler und Lösungen

  • Fehler: Der Filter wird nicht angewendet

    • Lösung: Stelle sicher, dass die Adresse der Zielzelle korrekt ist. Der Code bezieht sich auf "$E$3". Achte auch darauf, dass die Schreibweise der SlicerItems im Datenschnitt exakt mit dem eingegebenen Wert übereinstimmt.
  • Fehler: „Method 'SlicerItems' of object 'SlicerCache' failed“

    • Lösung: Überprüfe, ob der entsprechende Datenschnitt in deiner Arbeitsmappe vorhanden ist. Die Bezeichnung „Datenschnitt_Sachkonto“ muss exakt mit dem Namen deines Datenschnitts übereinstimmen.

Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch Excel-Formeln nutzen, um Dynamik in deine Pivot-Tabelle zu bringen. Eine Möglichkeit wäre die Verwendung von Datenvalidierung in Zelle E3 und die Verwendung von VERWEIS oder SVERWEIS-Formeln für die Pivot-Tabelle, um die Filterung manuell zu steuern.


Praktische Beispiele

Hier ist ein einfaches Beispiel zur Veranschaulichung:

  1. Du hast eine Pivot-Tabelle, die Verkaufsdaten nach Konten anzeigt.
  2. Du fügst einen Datenschnitt für Sachkonten hinzu.
  3. Wenn du in Zelle E3 das Konto „500000“ eingibst, wird der Datenschnitt automatisch nur die Daten für dieses Konto anzeigen.

Tipps für Profis

  • Vermeide unnötige Berechnungen: Setze Application.ScreenUpdating = False, um die Leistung deiner Excel-Datei zu verbessern, während der Filter angewendet wird.
  • Nutze Fehlerbehandlung: Füge eine Fehlerbehandlung in deinen VBA-Code ein, um unerwartete Probleme abzufangen und die Benutzerfreundlichkeit zu verbessern.
  • Teste auf verschiedene Werte: Experimentiere mit verschiedenen Eingaben in Zelle E3, um sicherzustellen, dass deine Filterung robust ist.

FAQ: Häufige Fragen

1. Kann ich mehrere Zellen für die Filterung verwenden?
Ja, du kannst den Code anpassen, um mehrere Zellen zu überwachen und die Filter entsprechend anzuwenden.

2. Funktioniert das in Excel 2016 und neueren Versionen?
Ja, der beschriebene Ansatz funktioniert in Excel 2016 und allen neueren Versionen. Achte darauf, dass die VBA-Referenzen korrekt gesetzt sind.

3. Was ist, wenn ich den Datenschnitt umbenenne?
Wenn du den Datenschnitt umbenennst, musst du auch den Namen im VBA-Code entsprechend anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige