AW: Fehler beim Filtern UF Textbox Datum
17.06.2021 12:57:46
Peter
Hallo Hansueli,
ich habe das Makro nochmals neu gefasst, so wie Daniel es gemeint hat.
Private Sub CommandButton33_Click()
Dim wb As Workbook
Dim Tb As Worksheet
'' Dim v1 As Double 'in den Zellen steht zwar ein Datum, verglichen wird aber mit der fortlaufenden Zahl
'' Dim v2 As Double
'' Dim v3 As Double
'' Dim v4 As Date
'' Dim v4a As Double
Dim v1 As Date 'in den Zellen steht zwar ein Datum, verglichen wird aber mit der fortlaufenden Zahl
Dim v2 As Date
Dim v3 As Date
Dim v4 As Date
Dim v4a As Date
Dim loLetzteB&
Application.ScreenUpdating = False
'für Datenfilterung
Set wb = ThisWorkbook
Set Tb = wb.Sheets("Buchen_1087789")
''Dim TB2 As Double
''TB2 = Me.TextBox2
'' v1 = Tb.Range("N7").Value 'später UF TextBox2.value
'' 'Debug.Print "v1: " & v1
'' v2 = Tb.Range("N8").Value 'später UF TextBox3.value
'' 'Debug.Print "v2: " & v2
'' v3 = Tb.Range("B10").Value 'erste Datum der Tabelle in Spalte B
'' 'Debug.Print "v3: " & v3
'' v4 = v1 - 1 'Anfangsdatum der Auswahl abzüglich 1 Tag als Kalendertag
'' 'Debug.Print "v4: " & v4
'' v4a = v4 'Anfangsdatum der Auswahl abzüglich 1 Tag als Zahl, erforderlich für Filtern
'' 'Debug.Print "v4a: " & v4a
v1 = Format(CDate(TextBox2), "MM\/DD\/YYYY")
v2 = Format(CDate(TextBox3), "MM\/DD\/YYYY")
v3 = Tb.Range("B10").Value 'erste Datum der Tabelle in Spalte B
v3 = Format(CDate(v3), "MM\/DD\/YYYY")
v4 = v1 - 1 'Anfangsdatum der Auswahl abzüglich 1 Tag als Kalendertag
v4a = v4 'Anfangsdatum der Auswahl abzüglich 1 Tag als Zahl, erforderlich für Filtern
'Anfang - Auflistung der erforderlichen Summen
'1. Anfangssaldo der gewählten Tabelle gesamt = H10
'2. Endsaldo der gewählten Tabelle gesamt - letzte beschriebene Zelle Spalt H
'3. Einnahmen zwischen zwei gewählten Datums-Werte Spalte F bis gewähltem Datum
'4. Ausgaben zwischen zwei gewählten Datums-Werte Spalte G bis gewähtlem Datum
'5. Anfangssaldo zwischen zwei gewählten Datums-Werte aus zu 1. zu 3. und 4.
'6. Einnahmen zwischen zwei gewählten Datums-Werte Spalte F
'7. Ausgaben zwischen zwei gewählten Datums-Werte Spalte G
'8. Summe von 6. und 7.
'9. Endsaldo zwischen zwei gewählten Datums-Werte Spalte F + G + zu 5. Anfangssaldo
'Ende - Auflistung der erforderlichen Summen
'zu 1. '= künftig UF - TB10
Dim ASaldoGes As String 'benötigt für Auslesen 1. Anfangssaldo
'Anfang - 1. Anfangssaldo in auslesen
ASaldoGes = Tb.Cells(10, 2).Offset(0, 6)
ASaldoGes = Format(ASaldoGes, "#,##0.00 ")
Debug.Print ASaldoGes & " zu 1. Anfangssaldo gesamt"
'Ende - 1. Anfangssaldo in auslesen
Me.TextBox10 = ASaldoGes
'Anfang - Filtern Bereich vom 1. Datum Tabelle bis vorletzte Datum vor Auswahl
loLetzteB = Tb.Range("B" & Rows.Count).End(xlUp).Row
If Tb.AutoFilterMode Then Tb.AutoFilterMode = False ' Autofilter ausschalten
Tb.Range("B9:H" & Cells(Rows.Count, 2).End(xlUp).Row).AutoFilter Field:=1, _
Criteria1:=">=" & v3, Operator:=xlAnd, _
Criteria2:="=" & v1, Operator:=xlAnd, _
Criteria2:="
Wenn ich das Makro mit Einzelschritt durchlaufen lasse, dann zeigen mir die Werte für v1, v2, v3, v4 und v4a ganz normales Datum an nicht jedoch das amerikanische, wo wie es als Format vorgegeben wurde. Dies wird offensichtlich nicht erkannt.
Kannst Du bitte prüfen, an was dies liegen kann.
Gruss
Peter