Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1536to1540
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Nach Monat und Jahr filtern

Nach Monat und Jahr filtern
25.01.2017 10:01:07
Oisse
Hallo Zusammen,
in meiner Tabelle sind in einer Spalte Datumswerte enthalten mit Tag, Monat und Jahr.
Nun möchte ich aber die Filter per VBA so setzen können, dass ich nach Monat und Jahr filtern kann.
Ich dachte das würde in etwa so gehen, dass ich für Tag einen Platzhalter hernehmne, also "*", dann für Monat die Monatszahl verwende, also z.B. 02 und dann noch das Jahr.
In der Summe also: *.02.2016
Das funktioniert aber leider nicht.
Wie bitte muss der Code aussehen, dass ich nach Monat und Jahr filtern kann?
Bisher habe ich folgendes:
If wks_Aus.Cells(2, 19) = -1 Then
Da32 = "Februar" & wks_Aus.Cells(3, 3) 'in Zelle 3,3 steht das Jahr
End If
With wks_Art
.Range("AA1").AutoFilter 27, Array(Da31, Da32, Da33, Da34, Da35, Da36, Da37, Da38, Da39,  _
Da40, Da41, Da42), Operator:=xlFilterValues
End With

Danke

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nach Monat und Jahr filtern
25.01.2017 10:16:16
EtoPHG
Hallo Oisse,
Ein aussichtsloses Unterfangen bei deinem Kenntnis-Level und eine umfangreiche Auftragsarbeit, wenn die Anforderung nur genau für deinen Setup in VBA umgesetzt werden soll.
Die einfachste Lösung: Datenbereich in eine Tabelle (Datentabelle) umwandeln und Filter einschalten. Für Datumsspalten wird automatisch eine Filterung nach die Hierarchie Jahr-Monat-Tag angeboten.
Gruess Hansueli
AW: Nach Monat und Jahr filtern
25.01.2017 10:37:42
Max2
Keine Lösung, aber eine Möglichkeit wie du das Datum *.02.2017 in 02 2017 aufspalten kannst.
(Mit der Aufspaltung kann man dann auch weiter arbeiten)
Hier Beispiel Datei fürs visuelle.: https://www.herber.de/bbs/user/110862.xlsm
Vielleicht hilft es dir ja

Sub a()
Dim ws As Worksheet
Dim rng, c As Range
Dim jahr, monat As String
Dim i, anfang, ende As Long
Dim datum As String
Set ws = ThisWorkbook.Sheets(1)
With ws
i = .Cells(.Rows.Count, 1).End(xlUp).Row
Set rng = .Range(.Cells(1, 1), .Cells(i, 1))
For Each c In rng
If IsNumeric(Right(c.Value, 4)) Then
datum = c.Value
anfang = InStr(datum, "*.")
ende = Len(datum)
monat = Mid(datum, anfang + 2, 2)
jahr = Mid(datum, (anfang + 5), 4)
End If
c.Offset(, 1).Value = monat & "-" & jahr
Next c
End With
End Sub

Anzeige
AW: Nach Monat und Jahr filtern
25.01.2017 20:09:27
Tino
Hallo,
ermiitle doch einfach den Monatsanfang vom Datum und das Monatsende vom Datum.
Alles was >=Monatsanfang und <=Monatsende ist, ist gefiltert nach Monat und Jahr.
Dim RefDatum As Date
Dim vonFilterDatum As Long, bisFilterDatum As Long
'kann auch aus einer Zelle sein
RefDatum = Date
'Monatsanfang
vonFilterDatum = DateSerial(Year(RefDatum), Month(RefDatum), 1)
'Monatsende
bisFilterDatum = DateSerial(Year(RefDatum), Month(RefDatum) + 1, 0)
With wks_Art
.AutoFilter.Range.AutoFilter Field:=27, Criteria1:= _
">=" & vonFilterDatum, _
Operator:=xlAnd, _
Criteria2:="
Gruß Tino
Anzeige
wenn noch Uhrzeiten darin enthalten
25.01.2017 20:13:21
Tino
Hallo,
wenn noch Uhrzeiten eine rolle spielen, dann besser so.
Monatsende ist der erste Tag im Folgemonat und der Filter wird auf <Monatsende gesetzt.
Dim RefDatum As Date
Dim vonFilterDatum As Long, bisFilterDatum As Long
'kann auch aus einer Zelle sein
RefDatum = Date
'Monatsanfang
vonFilterDatum = DateSerial(Year(RefDatum), Month(RefDatum), 1)
'Monatsende
bisFilterDatum = DateSerial(Year(RefDatum), Month(RefDatum) + 1, 1)
With wks_Art
.AutoFilter.Range.AutoFilter Field:=27, Criteria1:= _
">=" & vonFilterDatum, _
Operator:=xlAnd, _
Criteria2:="
Gruß Tino
Anzeige
AW: wenn noch Uhrzeiten darin enthalten
25.01.2017 22:26:12
Oisse
Hallo Max2, Tino und EthoPH2
und vielen Dank, dass ihr euch mit meinem Problem befasst habt und Lösungsvorschläge unterbreitet habt.
Ich schätze das wirklich sehr.
Tut mir leid, dass ich mich jetzt erst melde, ging aber leider nicht eher.
Mittlerweile wurde eine andere Lösung gefunden, nämlich das Datum in diesem Format: JJJJ"_"MM zu speichern. Somit werden die Jahre und Monate filterbar. Es sollte nämlich einfach nur per Kontrollkästchen auswählbar sein, nach welchen Monaten gefiltert werden soll und nach welchen Jahren.
Das ist mit dieser Formatierung problemlos per Array möglich.
Habt also vielen Dank für eure Hilfe.
Herzliche Grüße
Oisse
Anzeige

151 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige