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

Forumthread: Filtern per VBA nach Jahr

Filtern per VBA nach Jahr
02.03.2017 22:47:53
Peter
Hallo Zusammen,
bitte um Eure Hilfe.
Hat jemand ein Bsp-Code für Fitern einer Tabelle zuerst nach Jahr und dann nach Z.B. Autosorte?
Ich möchte z.B. efahren wieviel VW's im Jahr 2016 verkauft wurden.
Für Eure Hilfe bedanke ich mich im voraus.
LG, Peter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Filtern per VBA nach Jahr
02.03.2017 22:52:53
Peter
Hallo Zusammen,
eine kurze Ergänzung. Meine Tabelle befindet sich in der Range B4:N5200
Grüße, Peter
AW: Filtern per VBA nach Jahr
02.03.2017 23:57:21
Peter
Hallo,
Wie das Filtern mit Excel funktioniert in nicht das Problem. Ich möchte es per VBA lösen.
Gruß, Peter
Anzeige
AW: Filtern per VBA nach Jahr
03.03.2017 04:32:58
Matthias
Hallo Peter
Modell und Jahr einstellen und FilterButton drücken
Ich habe 2 Namen definiert.
https://www.herber.de/bbs/user/111923.xlsm
Gruß Matthias
AW: Filtern per VBA nach Jahr
03.03.2017 12:26:01
Peter
Halo Mathias,
vielen dank für deine Antwort.
Das Problem was ich habe ist mein Datumsformat z.B. 01.03.1990 oder 17.03.1990.
Mit diesem Format funktioniert das Filtern leider nicht
Hast noch eine Idee wie man das lösen kann?
https://www.herber.de/bbs/user/111929.xlsm
LG,
Peter
Anzeige
AW: Filtern per VBA nach Jahr
03.03.2017 13:33:15
Peter
Hallo Zusammen,
habe die Lösung gefunden.
So geht's bei mir.

Sub Filtern()
Dim Datum1 As Date
Dim Datum2 As Date
' Prüfen, ob Filter gesetzt wurde
With Sheets("XYZ")
If .AutoFilterMode = True Then
Else
.Range("B6:N6").AutoFilter
End If
End With
'Tabelle Filtern nach Datum
DatumX = InputBox("Bitte geben Sie ein Jahr ein: ")
Datum1 = Format(DateValue("01.01." & Val(DatumX)), "0")
Datum2 = Format(DateValue("31.12." & Val(DatumX)), "0")
Rows("6:6").AutoFilter Field:=4, Criteria1:=">=" & CDbl(Datum1), Operator:=xlAnd, Criteria2:="
Schönes Wochenende,
Peter
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Filtern per VBA nach Jahr in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade die Tabelle, die Du filtern möchtest.

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

  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub Filtern()
        Dim Datum1 As Date
        Dim Datum2 As Date
        Dim DatumX As String
    
        ' Prüfen, ob Filter gesetzt wurde
        With Sheets("XYZ") ' Ersetze "XYZ" durch den Namen Deines Arbeitsblatts
            If .AutoFilterMode = True Then
                .AutoFilterMode = False
            End If
            .Range("B6:N6").AutoFilter
        End With
    
        ' Tabelle filtern nach Jahr
        DatumX = InputBox("Bitte geben Sie ein Jahr ein: ")
        Datum1 = Format(DateValue("01.01." & Val(DatumX)), "0")
        Datum2 = Format(DateValue("31.12." & Val(DatumX)), "0")
    
        Rows("6:6").AutoFilter Field:=4, Criteria1:=">=" & CDbl(Datum1), Operator:=xlAnd, Criteria2:="<=" & CDbl(Datum2)
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus, indem Du ALT + F8 drückst, das Makro „Filtern“ auswählst und auf „Ausführen“ klickst.

  7. Gib das Jahr ein, nach dem Du filtern möchtest, und klicke auf „OK“.


Häufige Fehler und Lösungen

  • Fehler: "Typenkonflikt" beim Ausführen des Codes.

    • Lösung: Stelle sicher, dass das Datum im richtigen Format vorliegt. Überprüfe die Datumswerte in der Spalte, die Du filterst.
  • Fehler: Der Filter wird nicht angewendet.

    • Lösung: Überprüfe, ob Du das richtige Arbeitsblatt in Sheets("XYZ") angegeben hast. Ersetze "XYZ" durch den tatsächlichen Namen Deines Arbeitsblatts.

Alternative Methoden

Falls Du den Filter nicht über VBA anwenden möchtest, kannst Du auch die Filterfunktion in Excel direkt nutzen:

  1. Wähle die Daten in Deiner Tabelle aus.
  2. Gehe zu Daten > Filtern.
  3. Klicke auf den Dropdown-Pfeil in der Spalte, die das Jahr enthält, und wähle die gewünschten Jahreswerte aus.

Diese Methode ist einfacher, benötigt aber manuelle Eingaben und ist weniger automatisiert als der VBA-Ansatz.


Praktische Beispiele

Angenommen, Du hast eine Tabelle mit Verkaufsdaten, und Du möchtest die Verkäufe von VW im Jahr 2016 filtern. Verwende den obenstehenden VBA-Code und gib „2016“ ein, wenn Du zur Eingabe aufgefordert wirst.

Der Code filtert die Tabelle und zeigt Dir nur die Zeilen, die die Verkaufszahlen für VW im Jahr 2016 enthalten. Achte darauf, dass die Spalte, die Du filterst, die Verkaufsdaten korrekt enthält.


Tipps für Profis

  • Verwende benannte Bereiche, um Deinen VBA-Code übersichtlicher zu gestalten.
  • Experimentiere mit mehreren Kriterien im Filter, um spezifischere Ergebnisse zu erhalten.
  • Halte Deinen Code sauber und dokumentiere, was jeder Teil des Codes tut, um die Wartung zu erleichtern.

FAQ: Häufige Fragen

1. Kann ich den Code anpassen, um nach mehreren Jahren zu filtern?
Ja, Du kannst mehrere Filterkriterien hinzufügen, indem Du die Zeile mit Rows("6:6").AutoFilter entsprechend änderst.

2. Funktioniert dieser VBA-Code in Excel 2016?
Ja, der Code ist kompatibel mit Excel 2016 und anderen Versionen von Excel, die VBA unterstützen. Achte darauf, die richtigen Datumsformate zu verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige