• 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.

Filteren met combobox in Userform

Status
Niet open voor verdere reacties.

danny147

Terugkerende gebruiker
Lid geworden
29 apr 2007
Berichten
4.744
Beste,

Graag zou ik willen filteren via Combobox in een userform.
In C2:G2 staan aantal uren onderhoud in
Nu wil ik Vb. 500u selecteren en zou ik dan de lijst willen zien met alle X'en in kolom D
Kan men ook werken met Naamslijst --> C2:G2 = kiezen

In bijlage al een aanzet geprobeerd.
 

Bijlagen

  • Sorteren (test).xls
    69,5 KB · Weergaven: 31
Hoi

Zou zo kunnen.
 

Bijlagen

  • Sorteren (test).xlsm
    32,9 KB · Weergaven: 50
Zo heb je geen knoppen nodig
Code:
Private Sub ComboBox1_Change()
  Cells(2, 2).CurrentRegion.AutoFilter
  If ComboBox1.ListIndex > -1 Then Cells(2, 2).CurrentRegion.AutoFilter ComboBox1.ListIndex + 2, "<>"
End Sub
 
Beste,

Sorry voor de late reactie
Ziet er beide goed uit

Stel dat er een waarde bij komt in cel H2, kan dit zo aangepast worden met gegevensvalidatie in de code
zodat de code niet aangepast moet worden ?
 
Bv
Code:
Private Sub UserForm_Initialize()
  ComboBox1.List = Application.Transpose(Sheets("Blad1").Cells(2, 2).CurrentRegion.Resize(1).Offset(, 1).SpecialCells(2).Value)
End Sub
 
Beste,

Volgende heb ik tot nu toe + verbergen van onnodige kolommen (rood)
Kan er gekeken worden of dit goed is, ze werkt maar kan misschien korter ?

Code:
Private Sub CommandButton2_Click()
    ActiveSheet.ShowAllData
[COLOR="#FF0000"]    Application.Columns("C:L").Select
    Application.Selection.EntireColumn.Hidden = False[/COLOR]
End Sub

Private Sub UserForm_Initialize()
  ComboBox1.List = Application.Transpose(Sheets("Blad1").Cells(2, 2).CurrentRegion.Resize(1).Offset(, 1).SpecialCells(2).Value)
End Sub

Private Sub ComboBox1_Change()
  Cells(2, 2).CurrentRegion.AutoFilter
  If ComboBox1.ListIndex > -1 Then Cells(2, 2).CurrentRegion.AutoFilter ComboBox1.ListIndex + 2, "<>"
[COLOR="#FF0000"]    Application.Columns("C:L").Select
    Application.Selection.EntireColumn.Hidden = True
    Application.Columns(ComboBox1.ListIndex + 3).Select
    Application.Selection.EntireColumn.Hidden = False[/COLOR]
 End Sub
 
Application is overbodig. Select is overbodig. Kolommen kan je net als rijen alleen in het geheel verbergen. Of het gebruik van een vaste range handig is, gezien de vraag in #4, laat ik maar aan jou over.

Code:
Columns("C:L").Hidden = False
 
Beste VenA,

Bedankt voor de tip en voor de rest :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan