28.09.2023, 11:44 (Dieser Beitrag wurde zuletzt bearbeitet: 28.09.2023, 11:46 von RPP63.)
Moin! Seltsames Verhalten oder beginnende Demenz bei mir? Office 365 Beta aktuelle Version Gegeben: Tabelle mit Überschriften und 60 Daten vom 1.1.20 bis 28.9.23 ab B2 Folgender Code filtert die Tabelle nach Jahr:
Sub Filtern_nach_Jahr()
Dim Jahr&
Jahr = Application.InputBox("Jahr zwischen 2020 und 2023 angeben:", , 2021, Type:=1)
Cells(1).CurrentRegion.AutoFilter Field:=2, _
Operator:=xlFilterValues, Criteria2:=Array(0, "12/31/" & Jahr)
EndSub
Criteria2:=Array(0, "12/31/" & Jahr) filtert also das angegebene Jahr (und lässt die Vor- und Folgejahre außen vor). Das war doch "früher" nicht so einfach?
Ich hänge die Übungsdatei als xlsx mal an.
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
was willst du jetzt hören? Dass du wirklich beginnende Demenz hast?
Ich habe mich VBA-seitig bisher nicht allzu sehr mit dem Autofilter auseinander gesetzt. Bei mir (365 2302) funktioniert deine Routine auch. Aber ich habe mir jetzt mal die Hilfedatei dazu durchgelesen. Dort steht eindeutig:
Zitat:Criteria2 Optional Variant Das zweite Kriterium (eine Zeichenfolge). Wird mit Criteria1 und Operator verwendet, um ein Verbundkriterium zu erstellen. Wird auch als einzelne Kriterien für Datumsfelder verwendet, die nach Datum, Monat oder Jahr filtern. Gefolgt von einem Array, der die Filterung beschreibt Array(Level, Date). Hierbei ist "Level" 0-2 (Jahr, Monat, Datum) und "Date" ein gültiges Datum innerhalb des Filterzeitraums.
Die fette Hervorhebung ist von mir. Man kann also tatsächlich nach Jahr oder Monat oder Tag filtern und das Datum muss nur im entsprechenden Bereich liegen.
Die Hilfedatei hat als Datum den 07.04.2023 und keinerlei Hinweise auf irgendwelche Änderungen. Also wird es diese Funktionalität wohl geben, seit man das Datum Filtern kann. Also schon ewig.
Gruß, Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28 • RPP63
War das nicht schon sehr lange so. Hier mal was aus mein alten Unterlagen.
Code:
'When filtering for multiple periods that are selected from 'filter drop-down menu,use Operator:=xlFilterValues and 'Criteria2 with a patterned Array. The first number is the 'time period. Second number is the last date in the period.
'First dimension of array is the time period group '0-Years '1-Months '2-Days '3-Hours '4-Minutes '5-Seconds
'Multiple Years (2014 and 2016) use last day of the time 'period for each array item .AutoFilter Field:=iCol, _ Operator:=xlFilterValues, _ Criteria2:=Array(0, "12/31/2014", 0, "12/31/2016")
'Multiple Days 'Last day of each month: Jan, Apr, Jul, Oct in 2015) .AutoFilter Field:=iCol, _ Operator:=xlFilterValues, _ Criteria2:=Array(2, "1/31/2015", 2, "4/30/2015", 2, "7/31/2015", 2, "10/31/2015")
'Multiple Hours (All dates in the 11am hour on 1/10/2018 'and 11pm hour on 1/20/2018) .AutoFilter Field:=iCol, _ Operator:=xlFilterValues, _ Criteria2:=Array(3, "1/10/2018 13:59:59", 3, "1/20/2018 23:59:59")
Gruß Elex
Folgende(r) 2 Nutzer sagen Danke an Elex für diesen Beitrag:2 Nutzer sagen Danke an Elex für diesen Beitrag 28 • snb, RPP63
28.09.2023, 16:33 (Dieser Beitrag wurde zuletzt bearbeitet: 28.09.2023, 16:37 von RPP63.)
Moin! Danke für die zahlreichen Antworten! Offensichtlich ist dieser Weg jahrelang erfolgreich meinen Blicken verborgen geblieben. (oder es ist doch die beginnende D. …) Eins jedenfalls hat dieser Fettnapf bewirkt: Das vergesse ich nicht mehr, es sei denn …
Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)