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

Forumthread: Autofilter Datum aus Variable übergeben

Autofilter Datum aus Variable übergeben
11.11.2016 20:43:12
Felix
Moin zusammen,
ich möchte per Makro einen Datumswert per Variable an einen Autofilter übergeben.
Ungefähr so:

Sub Proforma01()
' Select data for proforma invoice and copy them to template
'Definition of Variable
Dim Datum As Date
'Filter for "Datum"
Datum = Sheets("Proforma").Range("B12").Value
Sheets("DanTysk SP").Select
ActiveSheet.Range("$A$8:$AM$50").AutoFilter Field:=34, Criteria1:=Datum
End Sub

Das in B12 angegebene Datum wird an die Variable übergeben mit folgenden Zeichen:
#10.11.2016#
Der Autofilter filtert nicht nach
10.11.2016
und zeigt nicht die gesuchten Zellen.
Ich hoffe jemand von Euch kann mir den richtigen Tip geben.
Vielen Dank,
Felix
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Autofilter Datum aus Variable übergeben
11.11.2016 21:09:35
Nepumuk
Hallo,
versuch es mal so:
ActiveSheet.Range("$A$8:$AM$50").AutoFilter Field:=34, Criteria1:=CLng(Datum)

Gruß
Nepumuk
AW: Autofilter Datum aus Variable übergeben
11.11.2016 21:50:54
Felix
Hallo Nepumuk,
hat leider nicht funktioniert. Es wird nicht nach dem Datum aus der Quellzelle gefiltert.
lg Felix
Anzeige
AW: Autofilter Datum aus Variable übergeben
12.11.2016 07:32:09
Luschi
Hallo Felix,
seit Excel 5.0 (1994) gibt es immer wieder Überraschungen beim Filtern von Datumswerten
mittels Vba. Zur Zeit klappt es mit Excel 2010 bis 2016 (Windows) bei mir so:
Dim dat As Long
Datum = Sheets("Proforma").Range("B12").Value2
Sheets("DanTysk SP").Select
ActiveSheet.Range("$A$8:$AM$50").AutoFilter Field:=34, _
Criteria1:=">=" & dat, _
Operator:=xlAnd, Criteria2:=" 'was komischer Weise z.Z. nicht klappt ist das hier, obwohl es im Jahre 2014
'noch funktionierte!
'ActiveSheet.Range("$A$8:$AM$50").AutoFilter Field:=34, _
Criteria1:="=" & dat, Operator:=xlAnd
Gruß von Luschi
aus klein-Paris
Anzeige
AW: was vergessen?
12.11.2016 13:59:29
Werner
Hallo Luschi,
hast du nicht vergessen die Variable dat zu füllen?
dat = Datum
Gruß Werner
AW: was vergessen?
12.11.2016 14:54:35
Luschi
Hallo Werner,
eigentlich sollte diese Zeile das tun:
dat = Sheets("Proforma").Range("B12").Value2
statt
Datum = Sheets("Proforma").Range("B12").Value2
Danke für den Hinweis! und Gruß von Luschi
aus klein-Paris
Anzeige
AW: was vergessen?
12.11.2016 22:12:59
Felix
Danke Luschi,
Dein Beitrag hat mir geholfen:
ActiveSheet.Range("$A$8:$AM$50").AutoFilter Field:=34, Criteria1:="=" & Datum, Operator:=xlAnd
hat funktioniert!
Schönen Abend noch,
Felix

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Autofilter für Datum in Excel mit VBA nutzen


Schritt-für-Schritt-Anleitung

Um einen Datumswert per Variable an einen Autofilter in Excel zu übergeben, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf VBAProject (deine Arbeitsmappe) und wähle Einfügen > Modul.
  3. Kopiere den folgenden Code in das neue Modul:
Sub Proforma01()
    ' Definition der Variable
    Dim Datum As Date
    Dim dat As Long

    ' Wert aus der Zelle B12 in die Variable Datum übernehmen
    Datum = Sheets("Proforma").Range("B12").Value2
    dat = CLng(Datum) ' Umwandlung in Long für den Filter

    ' Autofilter anwenden
    Sheets("DanTysk SP").Select
    ActiveSheet.Range("$A$8:$AM$50").AutoFilter Field:=34, Criteria1:="=" & dat, Operator:=xlAnd
End Sub
  1. Ändere den Bereich: Stelle sicher, dass der Bereich $A$8:$AM$50 zu deinen Daten passt.
  2. Führe das Makro aus: Drücke F5, um das Makro auszuführen und die Daten zu filtern.

Wenn dein Excel-Datum filtern nicht funktioniert, vergewissere dich, dass das Datum in der Zelle im richtigen Format vorliegt.


Häufige Fehler und Lösungen

  • Excel Datum filtern funktioniert nicht: Überprüfe, ob das Datum in der Zelle korrekt formatiert ist. Du kannst den Typ mit Debug.Print TypeName(Datum) überprüfen.

  • Falsches Datumsformat: Stelle sicher, dass das Datum in der Quellzelle (z.B. B12) im Datumsformat vorliegt. Wenn nicht, konvertiere es ggf. mit CDate().

  • Variable nicht korrekt befüllt: Achte darauf, dass die Variable dat korrekt gefüllt wird. Der Code dat = CLng(Datum) sollte das Datum korrekt umwandeln.


Alternative Methoden

Eine andere Möglichkeit, den Autofilter zu verwenden, besteht darin, die Filterkriterien direkt als String zu übergeben:

ActiveSheet.Range("$A$8:$AM$50").AutoFilter Field:=34, Criteria1:=">=" & Format(Datum, "mm/dd/yyyy")

Diese Methode kann nützlich sein, wenn du mit verschiedenen Datumsformaten arbeiten musst.


Praktische Beispiele

Hier sind einige Beispiele, wie du den Autofilter in Excel effektiv nutzen kannst:

  • Filtering by Date Range:
Dim startDate As Date
Dim endDate As Date
startDate = Sheets("Proforma").Range("B12").Value2
endDate = Sheets("Proforma").Range("B13").Value2

ActiveSheet.Range("$A$8:$AM$50").AutoFilter Field:=34, Criteria1:=">=" & startDate, Operator:=xlAnd, Criteria2:="<=" & endDate
  • Filtern nach spezifischem Datum:
Dim specificDate As Date
specificDate = Sheets("Proforma").Range("B12").Value2

ActiveSheet.Range("$A$8:$AM$50").AutoFilter Field:=34, Criteria1:="=" & specificDate

Tipps für Profis

  • Verwende Value2 anstelle von Value: Value2 gibt dir das Datum ohne Formatierung zurück, was oft hilfreich ist, wenn du mit Datumswerten arbeitest.

  • Fehlerbehandlung: Implementiere On Error Resume Next und On Error GoTo 0, um Fehler während der Ausführung abzufangen.

  • Testen: Verwende Debug.Print um Werte zu überprüfen, bevor du den Autofilter anwendest.


FAQ: Häufige Fragen

1. Warum funktioniert der Autofilter für das Datum nicht?
Es könnte sein, dass das Datum nicht im richtigen Format vorliegt. Stelle sicher, dass die Quellzelle ein korrektes Datumsformat hat.

2. Wie kann ich mehrere Kriterien im Autofilter verwenden?
Du kannst mehrere Kriterien mit Criteria2 und dem Operator-Parameter kombinieren. Beispiel: Operator:=xlAnd für beide Kriterien zu erfüllen.

3. Welche Excel-Version benötige ich?
Die oben genannten Methoden funktionieren ab Excel 2010 bis 2016 und höher. Bei älteren Versionen könnte es zu Abweichungen kommen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige