• 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 gebruiken voor een cel range

Status
Niet open voor verdere reacties.

nieuweharing

Gebruiker
Lid geworden
27 sep 2021
Berichten
42
Goedemorgen,

Een vraag over het gebruik van dezelfde combobox in een range.

Ik heb een combobox gemaakt die verwijst naar de naam range ' Dropdown1'.
Dit werkt prima voor enkele met onderstaande VBA code:

Private Sub ComboBox1_Change()
ComboBox1.ListFillRange = "Dropdown1"
ComboBox1.DropDown
End Sub

Maar als ik dezelfde combobox voor een range (b.v. X7 t/m X20) wil gaan gebruiken, wat moet er daan aan de code worden gewijzigd?

Groetjes

Anne

PS: de gebruikers maken (nog niet) gebruik van een form
 
Ik zou even een voorbeeldbestandje plaatsen
 
Of gewoon proberen:
Code:
[COLOR=#333333]Private Sub ComboBox1_Change()[/COLOR]
[COLOR=#333333]     ComboBox1.ListFillRange = "[/COLOR][COLOR=#333333]X7:X20[/COLOR][COLOR=#333333]"[/COLOR]
[COLOR=#333333]     ComboBox1.DropDown[/COLOR]
[COLOR=#333333]End Sub[/COLOR]
 
Ik zou het bereik te allen tijde dynamisch maken
 
Ik ook, maar dat was nu de vraag niet :). Overigens hééft TS die oplossing vermoedelijk al, als de naamreeks Dropdown1 dynamisch is. Wat ik dus óók al gedaan zou hebben.
 
Dank jullie wel JVeer en AccessGuru,

De oplossing van AccessGuru heb ik geprobeerd maar krijg een foutmelding. ik denk omdat
ListFillRange 2 keer wordt toegekend:
- aan Dropdown1 (deze is toegekend in de properties van Combobox1)
(Dropdown1 is een range en die bevat gegevens die in Sheet2 staan
In Sheet1 staat in cel X7 de combobox en dezelfde combobox wil ik ook gaan gebruiken
voor de cellen X8 t/m X20)

- aan X7:X20 (deze staat dan in de vba)

De foutmelding is:
ambiguous name detected:Combobox1_Change

Het plaatsen van een bestandje lukt me (nog) niet.

Ik hoop dat jullie hier iets mee kunnen.

Groetjes

Anne
 
Hallo allen,

Hierbij het voorbeeldbestandje.

Wat ik wil bereiken is dat de combobox zoals die in cel X5 staat ook is te gebruiken
in de cellen X8 t/m X20.
En dat als ik b.v. de letter 'p' invul in de combobox, de combobox ook gelijk de 3 opties Appels, Sinaasappels en Peren laat zien.
(dus alle keuzes waar de letter 'p' in voorkomt).
Zonder dat ik gebruik hoef te maken van het pijltje.

Eigenlijk in het kort:
in de cellen X8 t/m X20 exact dezelfde functionaliteit die nu ook cel X7 heeft.

Groetjes

Anne
 

Bijlagen

Als je de code uit jouw vorige topic begrijpt zou het eigenlijk moeten lukken.
 
Hallo Albert,

Ik had het 2e bestandje over het hoofd gekeken en de oplossing werkt inderdaad, en ook heel mooi!

Als ik nu ook een 2e Userform wil gebruiken naast de 1ste, weet jij wat er aan de code gewijzigd moet worden?
De 2e Userform verschijnt keurig en op de goede plek, alleen zie ik dezelfde gegevens staan als in Userform1.
Ik vermoed dat ik ergens de connectie moet leggen tussen Userform2 en het 2e rijtje met gegevens.
Maar hoe?

Heb jij een antwoord?

Groetjes

Anne
 
Hier een voorbeeld met twee verschillende Userforms.
Userform1 opent als je in kolom A klickt
Userform2 opent als je ergens in de cellen F7:F20 klickt.
Als je de code begrijpt moet het aanpassen naar eigen wens lukken.
 

Bijlagen

Hoi Albert,

Heel erg bedankt voor je antwoord en bijlage.
De 2e Userform zit er nu in, alleen laat deze dezelfde gegevens zien als Userform1.
Het is wel zo dat bij mij de gegevens van Userform1 en Userform2 zich niet op hetzelfde blad (blad2) bevinden.
Userform1 gegevens zitten in blad2 en Userform2 gegevens zitten in blad3.
Weet jij wat ik moet aanpassen zodat Userform2 de gegevens van blad3 laat zien?
(en Userform1 de gegevens van blad2?)

Alvast heel erg bedankt!

Groetjes

Anne
 
In de code van Userform2 staat onderstaande code:
Als je het rode gedeelte begrijpt kun je dit naar wens aanpassen.
Code:
Private Sub UserForm_Initialize()
[COLOR="#FF0000"]ListBox2.List = Sheets(2).ListObjects("Tabel2").DataBodyRange.Value[/COLOR]
ListBox1.List = ListBox2.List

Me.Width = 230

End Sub

Van zelf doen/uitzoeken leer je nml. het meeste.:D
En anders een voorbeeldbestand plaatsen.
 
Laatst bewerkt:
Hoi Albert,

Het is me gelukt, de 2e Userform haalt nu ook de juiste gegevens op.
De koppeling naar de tabel werkt bij mij niet op naam als b.v. "Tabel2" maar alleen het nummer, dus 2.

ListBox2.List = Sheets(2).ListObjects("Tabel2").DataBodyRange.Value

Alleen werkt de Userform2 niet zoals Userform1.
Het verschil is dat als bij Userform1 in het zoekvenster een gedeelte van de naam typt, hij gelijk alleen de overgebleven entries laat zien.
Alsof er een filter op zit.
Bij Userform2 gebeurd er niets als ik iets intyp.

Weet jij waar dat aan ligt?

Groetjes

Ik vermoed dat het ergens in dit stukje code zit:
Private Sub TextBox1_Change()
ListBox1.List = ListBox2.List
For j = ListBox1.ListCount - 1 To 0 Step -1
If InStr(1, ListBox1.List(j, 0), TextBox1, 1) = 0 Then ListBox1.RemoveItem j
Next j
End Sub

Anne
 
Laatst bewerkt:
Hallo Albert,

Het is me gelukt en Userform2 werkt nu heel mooi.
Omdat ik de smaak nu te pakken heb wil ik er graag in mijn bestand nog een aantal toevoegen.
En daar loop ik, net als in bijgaand bestand, tegen problemen aan.

Run-time error '9'
Subscript out of range

Weet jij wat hier aan de hand is?
Het lijkt erop dat hij het ListObject 'Tabel3' niet herkend.

Groetjes

Anne
 

Bijlagen

Tabel3 is geen echte tabel maar een Named range/gedefinieerde naam.
Verwijder die gedefinieerde naam en maak er een echte tabel van.
 
Klik eens in je voorbeeld bestand in Tabel1, en kijk vervolgens naar je tabbladen.
Je kunt dan zien dat het tabblad "Tabelontwerp" beschikbaar wordt, waar je vervolgens aan de linkerkant in de ribbon kunt zien dat de tabelnaam Tabel1 is.

Hetzelfde geldt voor Tabel2.

Je 3e "tabel" is helemaal geen tabel.
Ga in je tabel staan, en gebruik de sneltoets CTRL+L om van deze gegevens een officiële Excel tabel te maken.
Vervolgens eerst kijken op tabblad Tabelontwerp wat je tabelnaam is geworden (dat hoeft niet per se tabel3 te zijn, maar kan ook Tabel4 ofzoiets worden).
Dat kun je aanpassen naar eigen wens.

Vervolgens gebruik je deze tabelnaam om je combobox te vullen.
 
Hallo Barry,

Wat je schreef was voor mij een eye-opener!
Het is me nu helemaal duidelijk geworden en heb inmiddels 6 UserForms aangemaakt.

Het laatste stukje betreft een Userform die afhankelijk is van een andere Userform.
In de bijlage staat wat ik bedoel.
Nu gebruik ik de INDIRECT formule om een lijst met waarden op te halen die behoren bij de inhoud van een andere cel.
In de bijlage staan een paar voorbeelden (cel T7 en verder op blad1).
B.v. een beer waar alleen de waarden 'beer', 'bruin' en 'groot' van toepassing zijn (vanaf cel V7).

Weet jij, weten jullie, hoe of dit opgelost kan worden?
dus de inhoud van de 2e Userform afhankelijk is van de 1ste Userform?
en dat ieder van deze Userforms betrekking heeft op 1 kolom?

Groetjes en alvast bedankt!

Anne
 

Bijlagen

Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan