listbox vullen met data gefilterd op datumveld

Status
Niet open voor verdere reacties.

ikselle

Gebruiker
Lid geworden
25 mei 2009
Berichten
198
Kan er iemand nog eens een handje toesteken ? Ik wil gegevens filteren op datum. Daar gaat het reeds mis. Nadien zouden de gefilterde gegevens gesorteerd op uur in de listbox moeten komen. Bedankt voor het meedenken!
 

Bijlagen

Test het maar eens.
 

Bijlagen

Wow ! Zo snel en precies wat ik voor ogen had ! Erg bedankt Harry. :thumb:
 
@snb: Bedankt voor jouw bijdrage.
@Harry: ik heb nu een hele namiddag getracht jouw code (die perfect doet wat ik wou) over te zetten naar mijn applicatie maar blijkbaar zet ik de filter niet correct :o
Kan jij me misschien zeggen waar ik de mist in ga? Bedankt.
 

Bijlagen

Hallo ikselle,

Converteer kolom I naar "dd-mm-jjjj" > 29-02-2016 ipv. 29-02-16.
 
Dat het zo eenvoudig kan zijn :shocked: 1000xdank:thumb:
 
Toch nog een vraagje. Klopt het dat je geen columnheaders kan instellen in je listbox wanneer je geen gebruik maakt van de rowsource eigenschap om deze te vullen?
 
Dat klopt, het is enige goede aan Rowsource.
 
Je kan het nog zo aanpakken, maar dat moet jezelf maar beslissen.
Code:
Private Sub UserForm_Initialize()
Dim sn
Dim arr
Dim tmp
Dim i As Integer
Dim j As Integer
Dim N As Integer

sn = Cells(1).CurrentRegion
ReDim arr(UBound(sn), 9)
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
 If Rows(i).Hidden = False Then
     arr(N, 0) = Format(sn(i, 1), "hh:mm")
     arr(N, 1) = sn(i, 2)
     arr(N, 2) = sn(i, 3)
     arr(N, 3) = sn(i, 4)
     arr(N, 4) = sn(i, 5)
     arr(N, 5) = sn(i, 6)
     arr(N, 6) = sn(i, 7)
     arr(N, 7) = sn(i, 8)
     If i = 1 Then
     arr(N, 8) = sn(i, 9)
     Else
     arr(N, 8) = CDate(sn(i, 9))
    End If
     'arr(N, 9) = sn(i, 10)
     'arr(N, 10) = sn(i, 11)
     'arr(N, 11) = sn(i, 12)
     'arr(N, 12) = sn(i, 13)
     'arr(N, 13) = sn(i, 14)
     N = N + 1
 End If
 Next i
 For i = 1 To N - 1
    For j = i + 1 To N - 1
       If IsEmpty(arr(j, 0)) Or CDate(arr(i, 0)) > CDate(arr(j, 0)) Then
            tmp = arr(j, 0) & "|" & arr(j, 1) & "|" & arr(j, 2) & "|" & arr(j, 3) & "|" & arr(j, 4) & "|" & arr(j, 5) & "|" & arr(j, 6) & "|" & arr(j, 7) & "|" & arr(j, 8)
            arr(j, 0) = arr(i, 0)
            arr(j, 1) = arr(i, 1)
            arr(j, 2) = arr(i, 2)
            arr(j, 3) = arr(i, 3)
            arr(j, 4) = arr(i, 4)
            arr(j, 5) = arr(i, 5)
            arr(j, 6) = arr(i, 6)
            arr(j, 7) = arr(i, 7)
            arr(j, 8) = arr(i, 8)
            arr(i, 0) = Split(tmp, "|")(0)
            arr(i, 1) = Split(tmp, "|")(1)
            arr(i, 2) = Split(tmp, "|")(2)
            arr(i, 3) = Split(tmp, "|")(3)
            arr(i, 4) = Split(tmp, "|")(4)
            arr(i, 5) = Split(tmp, "|")(5)
            arr(i, 6) = Split(tmp, "|")(6)
            arr(i, 7) = Split(tmp, "|")(7)
            arr(i, 8) = Split(tmp, "|")(8)
        End If
    Next j
  Next i
 Me.LstbVandaag.List = arr
End Sub

Ook moet je de code nog aanpassen voor het sorteren.
In het voorbeeld had je drie kolommen, maar als je die code uitvoert op negen kolommen, moet de code wel aangepast worden, anders staan de laatste 6 kolommen zoals ze in het bestand staan en niet mee gesorteerd in de Listbox.
 
Laatst bewerkt:
Ja Harry, ik zal je laatste voorstel gebruiken om de headers te tonen. Thanks:)
 
Hoi,

Ik heb de code gewijzigd zoals je leest onder de code voor je negen kolommen, anders gaat dat niet goed.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan