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

Forumthread: VBA Datum in Pivot filtern

VBA Datum in Pivot filtern
26.02.2018 10:36:25
Andre´
Hallo alle zusammen,
ich habe eine Tabelle und filter mir über mehrere Pivottable gewisse Daten.
Problem: ich möchte gern über VBA das Datum in der Pivot filtern z.B. den 02.02.2018
Dazu habe ich den Makrorekorder benutzt.
Lasse ich jetzt das Makro laufen so kommt eine Fehlermeldung:
Laufzeitfehler 1004 (Anwendungs- oder objektdefinierter Fehler)
Hier die Bsp. Datei: https://www.herber.de/bbs/user/120065.xlsm
Ich hoffe mir kann jemand weiter helfen.
Vielen Dank im Voraus!
MFG Andre
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Datum in Pivot filtern
26.02.2018 11:00:08
Sandra
Hallo Andre´,
Sub datumfiltern()
ActiveSheet.ListObjects("Tabelle1").Range.AutoFilter Field:=2, Operator:= _
xlFilterValues, Criteria2:=Array(2, "2/1/2018")
End Sub
Gruß Sandra
AW: VBA Datum in Pivot filtern
26.02.2018 11:42:20
Andre´
Hallo Sandra,
danke für deinen Beitrag, aber ich meine die Pivottable die sich ab E1 befindet.
In F1 soll das Datum per VBA angesprochen werden.
MFG Andre´
Anzeige
AW: VBA Datum in Pivot filtern
26.02.2018 22:53:52
fcs
Hallo Andre,
leider finden exelintern bei der Verarbeitung von Pivotberichten via VBA teilweise Datenkonversionen ins US-Formt statt - aber natürlich mal wieder nicht konsequent.
Gruß
Franz
Sub prcPivotPageName_Datum()
'Seite im Pivotbericht setzen wenn Datum in Quelle im Format TTT TT.MM.JJJJ
Dim Datum As Date, sDatum As String, pvTab As PivotTable
Datum = Range("B1")
Select Case VBA.Weekday(Datum, vbMonday)
Case 1:   sDatum = "Mon "
Case 2:   sDatum = "Tue "
Case 3:   sDatum = "Wed "
Case 4:   sDatum = "Thu "
Case 5:   sDatum = "Fri "
Case 6:   sDatum = "Sat "
Case 7:   sDatum = "Sun "
End Select
sDatum = sDatum & Format(Datum, "DD\/MM\/YYYY")
Sub prcPivotPageName_Datum()
'Seite im Pivotbericht setzen wenn Datum in Quelle im Format TTT TT.MM.JJJJ
Dim Datum As Date, sDatum As String
Datum = Range("B1")
Select Case VBA.Weekday(Datum, vbMonday)
Case 1:   sDatum = "Mon "
Case 2:   sDatum = "Tue "
Case 3:   sDatum = "Wed "
Case 4:   sDatum = "Thu "
Case 5:   sDatum = "Fri "
Case 6:   sDatum = "Sat "
Case 7:   sDatum = "Sun "
End Select
sDatum = sDatum & Format(Datum, "DD\/MM\/YYYY")
With ActiveSheet.PivotTables("PivotTable2")
.RefreshTable
.PivotFields("Datum").ClearAllFilters
.PivotFields("Datum").CurrentPage = sDatum
End With
End Sub
ActiveSheet.PivotTables("PivotTable2")
With pvTab
.RefreshTable
.PivotFields("Datum").ClearAllFilters
.PivotFields("Datum").CurrentPage = sDatum
End With
End Sub

Anzeige
AW: VBA Datum in Pivot filtern
27.02.2018 09:13:02
Andre´
Hallo Franz,
vielen Dank für die Lösung, es funktioniert wie gewünscht:-)
MFG Andre
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBA Datum in Pivot filtern


Schritt-für-Schritt-Anleitung

Um das Datum in einer PivotTable mittels VBA zu filtern, kannst Du folgende Schritte befolgen:

  1. Öffne die Excel-Datei mit Deiner PivotTable.
  2. Öffne den VBA-Editor mit ALT + F11.
  3. Füge ein neues Modul hinzu:
    • Rechtsklick auf „VBAProject (DeineDatei.xlsm)“.
    • Wähle „Einfügen“ > „Modul“.
  4. Kopiere den folgenden Code in das Modul:
Sub FilterDatumInPivot()
    Dim Datum As Date
    Dim sDatum As String
    Datum = Range("F1").Value ' Das Datum aus Zelle F1 entnehmen

    ' Formatierung des Datums
    sDatum = Format(Datum, "DD/MM/YYYY")

    ' PivotTable aktualisieren und Datum filtern
    With ActiveSheet.PivotTables("PivotTable2")
        .RefreshTable
        .PivotFields("Datum").ClearAllFilters
        .PivotFields("Datum").CurrentPage = sDatum
    End With
End Sub
  1. Speichere das Modul und schließe den Editor.
  2. Führe das Makro aus: Gehe zurück zu Excel, drücke ALT + F8, wähle FilterDatumInPivot und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt häufig auf, wenn das angegebene Datum nicht im richtigen Format vorliegt. Stelle sicher, dass das Datum in F1 im Format TT.MM.JJJJ eingegeben ist.

  • PivotTable nicht gefunden: Überprüfe den Namen der PivotTable. Ersetze "PivotTable2" im Code durch den tatsächlichen Namen Deiner PivotTable.


Alternative Methoden

Falls Du kein VBA verwenden möchtest, kannst Du auch die Filteroptionen der PivotTable direkt in Excel nutzen:

  1. Klicke in die PivotTable.
  2. Gehe zu „Datum“ und klicke auf den Dropdown-Pfeil.
  3. Wähle „Datumsfilter“ und wähle die gewünschte Option aus.

Diese Methode ist vor allem nützlich, wenn Du kein Makro erstellen oder ausführen möchtest.


Praktische Beispiele

Angenommen, Du hast eine PivotTable mit Verkaufsdaten und möchtest die Verkaufszahlen für den 02.02.2018 filtern. Stelle sicher, dass:

  • Das Datum in Zelle F1 steht.
  • Deine PivotTable den Namen „PivotTable2“ trägt.

Führe dann das oben genannte Makro aus, um die PivotTable entsprechend zu filtern.


Tipps für Profis

  • Benutze das Makro-Rekorder: Wenn Du nicht sicher bist, wie Du den VBA-Code manuell schreiben sollst, kannst Du den Makro-Rekorder verwenden, um die Schritte aufzuzeichnen und den generierten Code anzupassen.

  • Fehlerbehandlung hinzufügen: Implementiere Fehlerbehandlung in Deinen VBA-Code, um sicherzustellen, dass der Code nicht abstürzt, falls etwas schiefgeht. Zum Beispiel:

On Error Resume Next
' Dein Code hier
On Error GoTo 0

FAQ: Häufige Fragen

1. Was ist der Unterschied zwischen einem Makro und einer normalen Excel-Formel?
Ein Makro ist ein automatisierter Satz von Anweisungen, der in VBA geschrieben ist, um komplexe Aufgaben auszuführen, während eine Formel eine einfache Berechnung in einer Zelle darstellt.

2. Wie kann ich sicherstellen, dass mein Datum korrekt formatiert ist?
Du kannst das Datum in Excel formatieren, indem Du mit der rechten Maustaste auf die Zelle klickst, „Zellen formatieren“ wählst und dann das gewünschte Datumsformat auswählst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige