Opgelost tabel in combobox met voorwaardes

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Schipper1994

Gebruiker
Lid geworden
10 mrt 2021
Berichten
158
Hallo,
is het mogelijk om een combobox te vullen uit een tabel maar met voorwaarde.

Bv in kolom A staan namen
In kolom B staat ja of nee

Ik wil in mijn combobox enkel de namen zien met ja in kolom B.
 
Plaats een voorbeeld documentje.
 
Zo bijvoorbeeld:
Code:
Sub VulComboBox1()
    ActiveSheet.ListObjects("Tabel1").Range.AutoFilter Field:=2, Criteria1:="Ja"
    ComboBox1.List = Application.Transpose(ListObjects("Tabel1").ListColumns(1).DataBodyRange.SpecialCells(xlCellTypeVisible))
    ActiveSheet.ListObjects("Tabel1").Range.AutoFilter Field:=2
End Sub
 
Hier nog een.
Code:
Sub hsv()
With ActiveSheet.ListObjects(1).DataBodyRange
 ActiveSheet.ComboBox1.List = Filter(Application.Transpose(Evaluate("if(" & .Columns(2).Address & "=""ja""," & .Columns(1).Address & ",""~"")")), "~", False)
End With
End Sub
 
dit werkt in mijn voorbeeld documentje, dank daarvoor.
Echter in mijn eigen document is dit.

Hoe kan ik dat omzetten naar bvb "BladjeX"
Dat is eentje dat me nog steeds niet goed lukt.
 
En wat is "BladjeX"?
Belangrijk voor de werking zijn:
ActiveSheet en ListObjects(1)
 
in het orgineel bestand is de combobox in een userform en haalt die zijn informatie uit een database.
het is dus niet de active sheet maar bvb "sheet_Database"
 
In de code staat geen bladnaam genoemd.
Heb je #7 gelezen?
 
Dan zou het zoiets moeten worden bij het openen van het formulier.

In de module van het formulier zetten.
Code:
private Sub userform_initialize()
With sheets("sheet_database").ListObjects(1).DataBodyRange
 ComboBox1.List = Filter(Application.Transpose(Evaluate("if(" & .Columns(2).Address & "=""ja""," & .Columns(1).Address & ",""~"")")), "~", False)
End With
End Sub
 
Het lukt me niet.
Had ook al eens met een macrotje geprobeerd. Ik heb nog eens een bestand gemaakt. Deze keer eentje die meer aansluit bij het orginele.
 

Bijlagen

Code:
Private Sub userform_initialize()
With Sheets("database").ListObjects(1).DataBodyRange
 ComboBox1.List = Filter(Application.Transpose(Evaluate("if(" & .Columns(4).Address & "=""ja""," & .Columns(1).Address & ",""~"")")), "~", False)
End With
End Sub
 
Code:
Private Sub userform_initialize()
With Sheets("database").ListObjects(1).DataBodyRange
 ComboBox1.List = Filter(Application.Transpose(Evaluate("if(" & .Columns(4).Address & "=""ja""," & .Columns(1).Address & ",""~"")")), "~", False)
End With
End Sub
Deze had ik al geprobeerd maar het lukt me niet.
Steek em maar eens in het document. Hij doet het niet. dan krijg ik GEEN items in de combobox.
 
Verander "ja" in "JA" in de code
 
Oeps.. :D ik probeerde het net en werkte niet.
Probeer opnieuw en werkt wel.. zal ergens iets fout gedaan hebben.
Ik probeer hem even in mijn document nu.

Hoe komen jullie eigenlijk op die listobject(1) ?
Ik dacht dat je een list altijd moest benoemen? (dit heb ik hier ooit eens ergens gelezen.)
 
HET LUKT NIET in mijn echte document.
Mijn origineel document bevat 11 kolommen waarvan de laatste die JA moet bevatten.

Code:
Private Sub UserForm_Initialize()
With Sheets("databaseX").ListObjects(1).DataBodyRange
 ComboboxX.List = Filter(Application.Transpose(Evaluate("if(" & .Columns(11).Address & "=""ja""," & .Columns(1).Address & ",""~"")")), "~", False)
End With
End Sub

Ik heb de Combobox aangepast
de sheetaanduiding ook en de columns heb ik van 4 naar 11 geplaatst. dit werkt NIET.
 
JA, Ja of ja?
 
ik heb ze allemaal al geprobeerd.
neem nu eventjes kleine letters voor zeker te zijn.
 
SNB,
Ik kan het origineel bestand niet plaatsen wegens teveel persoonlijke informatie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan