Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1616to1620
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

Datum Filtern

Datum Filtern
06.04.2018 11:45:00
Florian
Hallo Leute :)
und zwar will ich aus einem Tabellenblatt immer Monatlich bzw. Jährlich meine Daten filtern.
dafür hab ich 2 ComboBoxen wo man in der einen das Monat einstellen kann nach dem man filtern will und in der 2ten das dazugehörige Jahr.
kann evtl. mir weiterhelfen und mir sagen wo mein Fehler liegt? bzw. wenn man etwas verbessern kann dies bitte auch zu erwähnen :)
ich vermute mal das ich in der letzten Zeile beim Autofilter was falsch machen bei den Datentypen
vielen dank im Voraus schon!!
Sub Datum_filtern()
Dim Bereich As Range
Dim datum1 As Date
Dim datum2 As Date
Dim Tag1 As Byte
Dim Tag2 As Byte
Dim Monat1 As Byte
Dim Monat2 As Byte
Dim Jahr As Integer
Tag1 = 1
Tag2 = 31
If Tabelle3.ComboBox_Monat2.Value = "Jänner" Then
Monat1 = 1
End If
If Tabelle3.ComboBox_Monat2.Value = "Februar" Then
Monat1 = 2
Tag2 = 28
End If
If Tabelle3.ComboBox_Monat2.Value = "März" Then
Monat1 = 3
End If
If Tabelle3.ComboBox_Monat2.Value = "April" Then
Monat1 = 4
Tag2 = 30
End If
If Tabelle3.ComboBox_Monat2.Value = "Mai" Then
Monat1 = 5
End If
If Tabelle3.ComboBox_Monat2.Value = "Juni" Then
Monat1 = 6
Tag2 = 30
End If
If Tabelle3.ComboBox_Monat2.Value = "Juli" Then
Monat1 = 7
End If
If Tabelle3.ComboBox_Monat2.Value = "August" Then
Monat1 = 8
End If
If Tabelle3.ComboBox_Monat2.Value = "September" Then
Monat1 = 9
Tag2 = 30
End If
If Tabelle3.ComboBox_Monat2.Value = "Oktober" Then
Monat1 = 10
End If
If Tabelle3.ComboBox_Monat2.Value = "November" Then
Monat1 = 11
Tag2 = 30
End If
If Tabelle3.ComboBox_Monat2.Value = "Dezember" Then
Monat1 = 12
End If
If Tabelle3.ComboBox_Monat2.Value = "Alle" Then
Monat1 = 1
Monat2 = 12
Else
Monat2 = Monat1
End If
If Tabelle3.ComboBox_Jahr2.Value = "2018" Then
Jahr = 2018
End If
If Tabelle3.ComboBox_Jahr2.Value = "2019" Then
Jahr = 2019
End If
datum1 = DateSerial(Jahr, Monat1, Tag1)
datum2 = DateSerial(Jahr, Monat2, Tag2)
Set Bereich = Tabelle1.UsedRange
Bereich.AutoFilter Field:=6, Criteria1:=">=" & CDbl(datum1), Operator:=xlAnd, Criteria2:="

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datum Filtern
06.04.2018 12:29:02
Peter(silie)
Hallo,
warum denn CDbl?!
Damit konvertierst du dein Date Objekt in einen Double.
Hier eine Beispielmappe mit Code wie ich es machen würde:
https://www.herber.de/bbs/user/120894.xlsm
Hier nur Code:
Option Explicit
Public Enum DateTimeMonth
Januar = 1
Februar = 2
Maerz = 3
April = 4
Mai = 5
Juni = 6
Juli = 7
August = 8
September = 9
Oktober = 10
November = 11
Dezember = 12
End Enum
Public Function GetMonthString(ByVal dtMth As DateTimeMonth) As String
Select Case dtMth
Case DateTimeMonth.Januar: GetMonthString = "Januar" 'oder Jänner...
Case DateTimeMonth.Februar: GetMonthString = "Februar"
Case DateTimeMonth.Maerz: GetMonthString = "März"
Case DateTimeMonth.April: GetMonthString = "April"
Case DateTimeMonth.Mai: GetMonthString = "Mai"
Case DateTimeMonth.Juni: GetMonthString = "Juni"
Case DateTimeMonth.Juli: GetMonthString = "Juli"
Case DateTimeMonth.August: GetMonthString = "August"
Case DateTimeMonth.September: GetMonthString = "September"
Case DateTimeMonth.Oktober: GetMonthString = "Oktober"
Case DateTimeMonth.November: GetMonthString = "November"
Case DateTimeMonth.Dezember: GetMonthString = "Dezember"
End Select
End Function
Public Function GetMonthNumeric(ByVal mth As String) As DateTimeMonth
Select Case mth
Case "Jannuar", "Jänner": GetMonthNumeric = Januar
Case "Februar": GetMonthNumeric = Februar
Case "März": GetMonthNumeric = Maerz
Case "April": GetMonthNumeric = April
Case "Mai": GetMonthNumeric = Mai
Case "Juni": GetMonthNumeric = Juni
Case "Juli": GetMonthNumeric = Juli
Case "August": GetMonthNumeric = August
Case "September": GetMonthNumeric = September
Case "November": GetMonthNumeric = November
Case "Dezember": GetMonthNumeric = Dezember
End Select
End Function
Public Function GetAmountOfDays(ByVal year_ As Long, ByVal mth As DateTimeMonth) As Long
GetAmountOfDays = Day(DateSerial(year(year_), mth + 1, 1) - 1)
End Function
Public Sub FilterDate()
Dim mth1    As Variant
Dim mth2    As Variant
Dim year    As Variant
Dim dt1     As Variant
Dim dt2     As Variant
year = CLng(Tabelle3.ComboBox_Jahr2.Value)
mth1 = Tabelle3.ComboBox_Monat2.Value
If mth1  "Alle" Then
mth1 = GetMonthNumeric(mth1)
mth2 = mth1
Else
mth1 = DateTimeMonth.Januar
mth2 = DateTimeMonth.Dezember
End If
dt1 = DateSerial(year, mth1, 1)
dt2 = DateSerial(year, mth2, GetAmountOfDays(year, mth2))
Tabelle1.UsedRange.AutoFilter Field:=6, Criteria1:=">=" & dt1, Operator:=xlAnd, _
Criteria2:="

Anzeige
Korrektur...
06.04.2018 12:36:43
Peter(silie)
Hallo,
sorry mein Fehler, CDbl(datum) ist vollkommen richtig!
In meinem Code müsste es dann auch so aussehen:
    Tabelle1.UsedRange.AutoFilter Field:=6, Criteria1:=">=" & CDbl(dt1), Operator:=xlAnd, _
Criteria2:="

AW: Datum Filtern
06.04.2018 12:51:03
Rudi
Hallo,
Sub Datum_filtern()
Dim Bereich As Range
Dim datum1 As Date
Dim datum2 As Date
Dim Monat1 As Integer
Dim Monat2 As Integer
Dim Jahr As Integer
Select Case Tabelle3.ComboBox_Monat2.ListIndex
Case 0 To 11: Monat1 = Tabelle3.ComboBox_Monat2.ListIndex + 1: Monat2 = Monat1
Case 12: Monat1 = 1: Monat2 = 12
End Select
Jahr = Tabelle3.ComboBox_Jahr2.Value * 1
datum1 = DateSerial(Jahr, Monat1, 1)
datum2 = DateSerial(Jahr, Monat2 + 1, 0)
With Tabelle1
If .FilterMode Then .ShowAllData
Set Bereich = .UsedRange
.Activate
End With
Bereich.AutoFilter Field:=6, _
Criteria1:=">=" & CLng(datum1), _
Operator:=xlAnd, _
Criteria2:="

Gruß
Rudi
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige