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

ComBoBox vullen met gefilterde kolom

Status
Niet open voor verdere reacties.

Hoornvan

Terugkerende gebruiker
Lid geworden
10 feb 2002
Berichten
3.333
Beste helpers,

Ik wil een ComBoBox vullen met een gefilterde kolom.
In de help van Helpmij heb ik dit van Roncancio gevonden maar werkt niet bij mij.
Code:
ActiveSheet.ComboBox1.ListFillRange = ActiveSheet.Range("A2:A10").SpecialCells(xlCellTypeVisible).Address
De code die ik normaal gebruik om de ComBoBox te vullen is;
Code:
With Prive.cboNaam  
    .RowSource = ActiveSheet.Name & "!A2:" & Sheets("Privé").Range("A65536").End(xlUp).Address
End With
Nu heb ik geprobeerd om met de code van Roncancio te spelen maar dat mislukt.
Ik heb een msgBox eerst ingebouwd om te kijken of hij het goede blad gebruikt en dat doet hij.
Dus de range wil niet werken, ook niet als ik achter Name.Range zet.
Code:
With Prive.cboNaam  'Laat alleen de gefilterde namen zien
    .RowSource = ActiveSheet.Name("A2:A1000").SpecialCells(xlCellTypeVisible).Address
End With
Hij geeft alleen niet de lijst niet maar komt met de fout 451.
Nu is de vraag hoe krijg ik dit voorelkaar?
De ComBobox staat in een formulier.

Alvast hartelijk bedankt.
 
Warme bakkertje,

Hartelijk bedankt voor de code.
Deze werkt, ik heb er een deel van gebruikt.
 
Waarom werken Listfillrange en rowsource niet ?

Omdat de zichtbare rijen na filtering geen aaneengesloten gebied vormen.

Rudi lost dit op met
Code:
Private Sub UserForm_Initialize()
    Dim cell As Range
    Worksheets(1).AutoFilterMode = False
    [A1:A16].AutoFilter 1, "2"
    ComboBox1.Clear
    For Each cell In [A2:A16]
        If Not cell.Rows.Hidden Then
            ComboBox1.AddItem cell.Value
        End If
        Lastrow = Thisrow
    Next cell
End Sub
Nu is de additem-methode geen snelle methode om een combobox te vullen

Niettemin: iets fraaier lijkt mij
Code:
Private Sub UserForm_Initialize()
  With [Blad1!A1:A16]
    .AutoFilter 1, "2"
    For Each cl In .offset(1).specialcells(xlcelltypevisible)
      ComboBox1.AddItem cl.Value
    Next cell
End Sub
Combobox1.clear is overbodig omdat bij de initialisatie van een userform een combobox immer leeg is.

Een alternatief is om de gefilterde cellen te kopiëren; dan vormen ze vanzelf een aangesloten gebied. Vervolgens kunnen ze met 3 verschillende methoden worden ingelezen in de combobox.

Code:
Private Sub UserForm_Initialize()
  With [Blad1!A1:A16]
    .AutoFilter 1, "2"
    .offset(1).specialcells(xlcelltypevisible).copy [Blad1!AA1]
  End with
  Combobox1.listfillrange=[Blad1!AA1].currentregion.address
End Sub

Code:
Private Sub UserForm_Initialize()
  With [Blad1!A1:A16]
    .AutoFilter 1, "2"
    .offset(1).specialcells(xlcelltypevisible).copy [Blad1!AA1]
  End with
  Combobox1.rowsource=[Blad1!AA1].currentregion.address
End Sub
of
Code:
Private Sub UserForm_Initialize()
  With [Blad1!A1:A16]
    .AutoFilter 1, "2"
    .offset(1).specialcells(xlcelltypevisible).copy [Blad1!AA1]
  End with
  sq=[Blad1!AA1].currentregion
  Combobox1.list=sq
End Sub
 
Laatst bewerkt:
snb,

Bedankt voor de code.
De code van Warme bakkertje werkt goed maar ik zal uw code ook proberen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan