Gemeenten en steden in listbox laten verschijnen

Status
Niet open voor verdere reacties.

qelvin

Gebruiker
Lid geworden
15 apr 2012
Berichten
28
Beste forumleden,

De titel zegt alles...
Ik wil dus in de listbox een keuze laten maken tussen verschillende deelgemeenten als een bepaalde postcode wordt gekozen in de combobox.
Zie bijgevoegd voorbeeldbestandje.

Alvast bedankt
 

Bijlagen

Ik heb ondertussen volgende code gevonden maar deze retourneert ALLE waarden in kolom "Plaats" en niet enkel de plaatsna(a)m(en) die bij de postcode hoort.

Code:
Private Sub ComboBox1_Change()
ComboBox2.List = WorksheetFunction.Transpose(Sheets("Gegevens").[A1].CurrentRegion.Columns(ComboBox1.ListIndex + 2))
End Sub
 
Ik bedoelde initieel natuurlijk geen listbox maar een combobox...
Kan iemand me eventueel onderstaande code uitleggen?

Code:
Private Sub ComboBox1_Change()
ComboBox2.List = WorksheetFunction.Transpose(Sheets("Gegevens").[A1].CurrentRegion.Columns(ComboBox1.ListIndex + 2))
End Sub
 
92x bekeken en geen enkele reactie.
Begin al eens uit te leggen wat je precies wil zien bij een bepaalde keuze, want ik heb er absoluut geen idee van wat je eigenlijk wil.:o
 
Hier gaan we...:)
Als de Userform geopend wordt, verschijnen er 2 ComboBoxen.
ComboBox1 laadt alle postcodes in, wat dus perfect is, hier hoeft eigenlijk niets aan gewijzigd te worden.
Nu zou ik graag willen dat als er in ComboBox1 een postcode geselecteerd wordt, in Combobox2 automatisch de bijhorende plaatsnaam of plaatsnamen geladen word(t)en, zodat enkel uit deze nieuwe lijst kan gekozen worden.
Het voorbeeldbestand is uiteraard ingekort en ontdaan van alle gevoelige informatie, maar de bedoeling is dat uiteindelijk de postcode in een document weggeschreven wordt, samen met de bijhorende plaatsnaam. (de code om het wegschrijven van de gegevens uit ComboBox1 en ComboBox2 te laten gebeuren, heb ik reeds).
Bij wijze van voorbeeld: Bij postcode 5000 horen de plaatsen Beez en Namur. Het mag niet mogelijk zijn dat bij selecteren van 5000 (in ComboBox1) een andere plaatsnaam in de lijst verschijnt dan Beez en Namur (in ComboBox2).

Er zijn dus blijkbaar inderdaad geen domme vragen enkel onduidelijke...:p
 
Ik heb ergens een oplossing gevonden, snuffel 'm morgen op mijn werk wel even op. Ik heb 'm zelf nog niet goed bekeken, dus geen idee of en hoe het werkt.
 
Het gaat blijkbaar om Belgische postcodes (ook niet onbelangrijk te vermelden).
 
Dit is em Rudi.
Weerom hartelijk dank voor de hulp. :thumb:
 
@ snb

De bedoeling is echter om bij selectie van een postnummer in CB1 dat dan in CB2 als lijst enkel en alleen alle gemeenten (of 1) getoond worden die datzelfde postnummer hebben. (wat idd. kan voorkomen in België).
Als test postnummer 5000 geeft 2 gemeenten nl. Beez en Namur.
 
Is dit niet mogelijk zonder de waarden op een Excel-sheet te moeten zetten, dus in een array in het geheugen? Dan kan het overal gebruikt worden.
 
Om het netjes te houden zou ik er dan een spatie tussen zetten.
Code:
sn = [transpose(if(A2:A2100="","",A2:A2100 & " " & B2:B2100))]
Maar wederom een mooie oplossing uit jouw pen (of klavier) :thumb:
 
@WB

Ook het inlezen van het gehele gebied in de combobox kan in 1 regel, zonder tussenkomst van een variabele.
 
Sorry wb en snb, maar de code doet niet geheel wat gevraagd was blijkbaar...
Het probleem is dat nu ALLE combinaties van de gevraagde postcodes goed zijn , wat uiteraard niet mag.
Een voorbeeld: begin je bij postcode te typen "1785" dan verschijnt in de listbox "Merchtem", "Brussegem" en "Hamme". Perfect behalve dat deze ook verschijnen als je begint te typen "85..", dus deze combinatie mag niet verschijnen, enkel als in de volgorde "1" dan "7" dan "8" en ten laatste "5" getypt wordt.
Kan dit opgelost worden?

Alvast bedankt
 
Gebruik het AfterUpdate-event ipv het Change-event.
Code:
Private Sub ComboBox1_AfterUpdate()
    ListBox1.List = Filter([transpose(if(A2:A2100="","",A2:A2100 & " " & B2:B2100))], ComboBox1.Value)
    'ComboBox2.List = Filter([transpose(if(A2:A2100="","",A2:A2100 & " " & B2:B2100))], ComboBox1.Value)
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan