• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Listbox userform twee kolommen en filteren

Status
Niet open voor verdere reacties.

u172468

Gebruiker
Lid geworden
16 okt 2015
Berichten
7
Goedeavond,

Ik heb een stukje VBA maar ik kom er niet uit.

Ik wil in een Listbox twee kolommen laten zien in een lijst . Dat lukt maar nu wil ik alleen a en b laten zien als ik kolom f een bepaalde waarde staat. Hopelijk weet iemand dit.. Ik heb er er nu een bestandje bijgedaan met 2 macro's. Deze twee wil ik graag gecombineerd hebben maat ik kom er niet uit.

1: macro 1 zet twee rijen in de listbox
2: macro 2 geeft de waarden in de listbox die overeenkomen met cel G1

Alvast bedanktBekijk bijlage Userform met filter.xls
 
Laatst bewerkt:
Plaats er eerst maar eens een voorbeeldje bij. En plaats svp de code tussen codetags. Beide 'suggesties' zijn te vinden onder de knop 'Ga geavanceerd'
 
zonder voorbeeld is het gissen maar probeer deze eens:

Menu.Listbox_medewerkers.List = rng

zorg wel dat de Listfillrange van de listbox niet is ingevuld
 
Laatst bewerkt:
Bv. als kolom F groter dan 0 of niet leeg.

Code:
Private Sub UserForm_Initialize()
Dim rng As Range, rngTwee As Range, rngDrie As Range, sq, sq2
  With Blad1
     .Cells(1).CurrentRegion.Columns(6).Resize(, 1).Name = "rng"
     .Cells(1).CurrentRegion.Resize(, 1).Name = "rngtwee"
     .Cells(1).CurrentRegion.Columns(2).Resize(, 1).Name = "rngDrie"
    ListBox1.ColumnCount = 2
     sq = Split(Join(Filter(Application.Transpose([if(rng>0,rngtwee, "~")]), "~", False), "|"), "|")
     sq2 = Split(Join(Filter(Application.Transpose([if(rng>0,rngdrie, "~")]), "~", False), "|"), "|")
       Range("xfc1").Resize(UBound(sq) + 1, 2) = Application.Transpose(Array(sq, sq2))
    ListBox1.List = Range("xfc1").CurrentRegion.Value
      .Range("xfc1").CurrentRegion.ClearContents
    End With
 With Application
  .Names("rng").Delete
  .Names("rngTwee").Delete
  .Names("rngDrie").Delete
 End With
End Sub
 
hallo, ik heb jouw marootje een beetje aangepast: let op rode letters
Code:
Private Sub CommandButton1_Click()

    Dim LR As Long
    Dim r As Long
    Dim i As Long

    With ListBox1
        .Clear
        .ColumnCount = 2
        .ColumnWidths = "50;50"
        .ColumnHeads = False
    End With

    With ActiveSheet
        LR = .Range("A" & .Rows.Count).End(xlUp).Row
        For r = 2 To LR
            If .Cells(r, 1).Value = Sheets("Blad1").Range("G1").Value Then
                ListBox1.AddItem .Cells(r, [COLOR="#FF0000"]1[/COLOR]).Value
                ListBox1.List(i, 1) = .Cells(r, [COLOR="#FF0000"]2[/COLOR]).Value
                i = i + 1
            End If
        Next r
    End With
End Sub
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan