Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
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
Listbox nach Datum filtern
01.02.2016 13:08:40
Christian
Hi Forumler,
ich habe auf einer Userform eine Listbox. Auf dieser UF sind auch 2 DTPicker wie kann ich das umsetzen das wenn ich den Zeitraum auswähle mir die werte in der Listbox filtert?
Anfangsdatum und Enddatum sind die beiden DTPicker.
Gern kann auch mal die Datei angehängt werden!!
Grüße aus BW

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Listbox nach Datum filtern
05.02.2016 18:54:17
Tino
Hallo,
hier mal ein Beispiel.
kommt als Code in UserForm1
Option Explicit 

Private Sub DTPicker1_Change()
Call FilterDaten(DTPicker1.Value, DTPicker2.Value, 1)
End Sub

Private Sub DTPicker2_Change()
Call FilterDaten(DTPicker1.Value, DTPicker2.Value, 1)
End Sub

'vonDate= Filter von, bisDate= Filter bis, lngCol= Spalte wo Datum
Private Sub FilterDaten(vonDate As Date, bisDate As Date, lngCol&)
Dim ArData
Dim NewAr()
Dim n&, nn&, nCount&

If vonDate <= bisDate Then
ArData = DatenBereich.Value
ArData = Application.Transpose(ArData)
Redim Preserve NewAr(1 To Ubound(ArData), 1 To Ubound(ArData, 2))
For n = 1 To Ubound(ArData, 2)
If IsNumeric(ArData(lngCol, n)) Then
If CDate(ArData(lngCol, n)) >= vonDate Then
If CDate(ArData(lngCol, n)) <= bisDate Then
nCount = nCount + 1
For nn = 1 To Ubound(ArData)
NewAr(nn, nCount) = ArData(nn, n)
Next nn
End If
End If
End If
Next n
End If
If nCount > 0 Then
Redim Preserve NewAr(1 To Ubound(NewAr), 1 To nCount)
If nCount > 1 Then
NewAr = Application.Transpose(NewAr)
ListBox1.List = NewAr
Else
ListBox1.Clear
ListBox1.AddItem NewAr(1, 1)
For n = 2 To Ubound(NewAr)
ListBox1.List(0, n - 1) = NewAr(n, 1)
Next n
End If
Else
ListBox1.Clear
End If
End Sub

Private Sub UserForm_Initialize()
Dim ArData
ArData = DatenBereich.Value
With ListBox1
.ColumnCount = Ubound(ArData, 2)
.List = ArData
End With
Call FilterDaten(DTPicker1.Value, DTPicker2.Value, 1)
End Sub

Private Function DatenBereich() As Range
With Tabelle1
Set DatenBereich = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 2)
End With
End Function
Gruß Tino
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige