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

Forumthread: Nach Datum filtern (VBA)

Nach Datum filtern (VBA)
29.04.2015 11:13:53
Steven
Hallo Zusammen,
Ich habe eine Excel Datei in der Daten aus einer Access Datenbank importiert werden.
Wenn ich den Filter in der Datumsspalte händisch setze bekomme ich auch das richtige Ergebnis.
Zeichne ich dieses Marko aber auf und wende es an, liefert er 0 Ergebnisse.
Ich denke es hat etwas mit der formatierung der Spalte zu tun.
Hier der Code zum filtern

Sub Makro1()
' Makro1 Makro
ActiveSheet.ListObjects("Tabelle_Abfrage_von_MS_Access_Database").Range. _
AutoFilter Field:=5, Criteria1:=">=01.01.2014", Operator:=xlAnd, _
Criteria2:="
Wie bekomme ich das problem gelöst?
Besten Dank!

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach Datum filtern (VBA)
29.04.2015 11:17:37
Hugo
Hallo,
aus VBA heraus musst Du die englische Datumsschreibweise nutzen.
Gruß
Hugo

AW: Nach Datum filtern (VBA)
29.04.2015 11:28:46
Steven
Danke erstmal,
das englische Format wäre ja : MM:DD:YYYY.
Aber mit

ActiveSheet.ListObjects("Tabelle_Abfrage_von_MS_Access_Database").Range. _
AutoFilter Field:=5, Criteria1:=">=01.01.2014", Operator:=xlAnd, _
Criteria2:="
funktioniert es leider auch nicht.

Anzeige
AW: Nach Datum filtern (VBA)
29.04.2015 12:02:31
Daniel
Hi
das Englische Datumsformat ist "MM/DD/YYYY", dh Monat, Tag, Jahr mit dem Schrägstrich getrennt.
nur so wird es in VBA vom Autofilter erkannt (in jeder Länderversion)
Gruß Daniel

AW: Nach Datum filtern (VBA)
29.04.2015 11:18:21
Tino
Hallo,
versuch mal das Datum als Zahl zu übergeben.
Nicht getestet!
 Criteria1:=">=" & clng(DateSerial(2014,1,1))
Gruß Tino

Anzeige
AW: Nach Datum filtern (VBA)
29.04.2015 11:24:46
Rudi
Hallo,
versuche
Criteria1:=">=" & CLng(CDate("01.01.2015")), Operator:=xlAnd, Criteria2:=" Gruß
Rudi

AW: Nach Datum filtern (VBA)
29.04.2015 12:39:10
Steven
Danke Rudi!
Hat super funktioniert!
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Datum filtern in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel nach Datum zu filtern, insbesondere wenn Du mit VBA arbeitest, folge dieser Schritt-für-Schritt-Anleitung:

  1. Öffne die Excel-Datei mit den importierten Daten aus der Access-Datenbank.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Erstelle ein neues Modul:

    • Klicke auf Einfügen > Modul.
  4. Füge den folgenden Code ein:

    Sub Makro1()
       ActiveSheet.ListObjects("Tabelle_Abfrage_von_MS_Access_Database").Range. _
       AutoFilter Field:=5, Criteria1:=">=" & CLng(CDate("01.01.2014")), Operator:=xlAnd
    End Sub
  5. Ändere das Datum in das gewünschte Format. Achte darauf, dass Du die englische Datumsschreibweise (MM/DD/YYYY) verwendest, wenn Du mit VBA arbeitest.

  6. Führe das Makro aus und überprüfe, ob die Filterung wie gewünscht funktioniert.


Häufige Fehler und Lösungen

  • Fehler: 0 Ergebnisse beim Filtern
    Lösung: Stelle sicher, dass Du die englische Datumsschreibweise verwendest. Der Code sollte so aussehen:

    Criteria1:=">=01/01/2014"
  • Fehler: Formatierungsprobleme
    Lösung: Überprüfe das Format der Datumsspalte. Das Datum muss im richtigen Format vorliegen, um korrekt gefiltert werden zu können. Du kannst auch versuchen, das Datum als Zahl zu übergeben, indem Du CLng(DateSerial(...)) verwendest.


Alternative Methoden

Falls Du keine VBA-Programmierung verwenden möchtest, kannst Du auch die normalen Excel-Filter verwenden:

  1. Markiere die Datumsspalte.
  2. Gehe zu Daten > Filter.
  3. Klicke auf den Dropdown-Pfeil und wähle Datumsfilter.
  4. Wähle die gewünschte Filteroption, z. B. Nach Datum filtern nach Monat und Jahr.

Praktische Beispiele

  • Beispiel 1: Filtere nach einem bestimmten Jahr (z. B. 2014):

    Criteria1:=">=01/01/2014"
  • Beispiel 2: Filtere nach einem bestimmten Monat (z. B. Januar 2014):

    Criteria1:=">=01/01/2014", Criteria2:="<=01/31/2014"

Tipps für Profis

  • Verwende Variablen für Datumswerte, um Deinen Code flexibler zu gestalten. Beispielsweise:

    Dim StartDatum As Date
    StartDatum = DateSerial(2014, 1, 1)
    ActiveSheet.ListObjects("Tabelle_Abfrage_von_MS_Access_Database").Range. _
    AutoFilter Field:=5, Criteria1:=">=" & CLng(StartDatum)
  • Teste Deinen Code gründlich mit verschiedenen Datumsformaten, um sicherzustellen, dass er in allen Szenarien funktioniert.


FAQ: Häufige Fragen

1. Warum kann ich kein Datum im deutschen Format filtern?
In VBA musst Du die englische Datumsschreibweise verwenden, da sonst das Datum nicht erkannt wird.

2. Wie kann ich mehrere Kriterien für das Datum festlegen?
Du kannst mehrere Criteria in der AutoFilter-Methode angeben, um komplexe Filter zu erstellen. Verwende dazu Operator:=xlAnd oder Operator:=xlOr.

3. Funktioniert das auch in älteren Excel-Versionen?
Ja, die Verwendung von VBA zur Filterung nach Datum funktioniert in den meisten Excel-Versionen, solange die grundlegenden Funktionen unterstützt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige