Vraag & Antwoord

Programmeren

ComboBox vullen met Excel data

11 antwoorden
  • Ik ben niet echt bekend met VBA, dus laat staan met Combobox'en. Wie kan mij een duw in de goede richting geven. Hoe kan ik een ComboBox vullen met data uit een kolom (eigenlijk meerdere cellen) op een ander werkblad. Ik weet inmiddels hoe dit gaat voor 1 waarde nl. me.combobox1.value="" , maar hoe moet dit nu met meerdere celwaarden. Alvast mijn dank voor jullie reacties.
  • Beide onder tabblad gegevens: Als Rijbron/RowSource: "The Turtles";"Paul Weller";"Rammstein";"Linkin Park";"Supertramp";"Bruce Springsteen" En als Rijbrontype/RowSourceType: Lijst met velden
  • Dank voor je reactie. Ik begrijp wat je bedoelt met rowsource en type. Alleen ben ik een dermate nono op het gebied van VBA, dat ik het niet in de praktijk kan brengen. Zou je een stukje broncode willen schrijven. Ik heb dus een userform met een combobox. In deze box wil ik een invoerlijst met gegeven uit kolom C. ("c1;c100") vullen, zodat ik met behulp van deze gegevens een validatie kan laten uitvoeren, door de combobox aan te klikken en meteen de gewenste waarde aan kan klikken. Deze waarden veranderen vaak, dus vandaar dat dit wenselijk is. Hier beperk ik het verhaal alleen tot het vullen van deze combobox. De rest is mij wel al gelukt. Bijvoorbaad dank.
  • Het is gelukkig weekend! Ik heb thuis geen Office, op m'n stage heb ik echter net zoiets moeten maken, dus dat kan ik redelijk letterlijk kopiëren. Als je geduld hebt tot maandag zal ik het hier neerzetten. Ik kan dus niets controleren, uit m'n hoofd was het zoiets:[code:1:325a16ce49]Dim I, Excel As Integer Dim Keuzelijst, Cel As String Excel = DDEInitiate('Excel', 'Sheet1') For I = 1 To 100 Cel = DDERequest(Excel, "R" +Trim(Str(I)) + "K3") Keuzelijst = "'" + Cel "';" 'Of Keuzelijst = """" + Cel """;" End For Keuzelijst = Left(Keuzelijst,Len(Keuzelijst)-1)[/code:1:325a16ce49] Oppassen bij: * For, ik weet niet of een Forlus er qua syntax er zou uit moet zien. Cursor op for en op F1 drukken, dan vind je genoeg. * De "'", kijk eerst maar of dit lukt, anders de onderste gebruiken. * Met dit stuk moet de sheet al wel ge-opent zijn, verander 'Sheet1' in de naam die in dat tabje onderaan staat.
  • Hallo, als voorbeeld voor het vullen van ene combo of listbox, heb ik het volgende: [code:1:2da2cba658] With frmInput .ListClients.Clear For Each Rng In WsClients.Range("Clients") If Len(Rng.Value) > 1 Then .ListClients.AddItem Rng.Value End If Next Rng End With [/code:1:2da2cba658] De range clients is de naam die je aan de cellen met je invoer gegevens geeft. Listclients is de naam van de combo of listbox. groet Fred
  • Opnieuw bedankt voor het meedenken. Heb toch gekozen voor de simpele uitweg, nl.: [code:1:26b0de56e9]private sub userform_initialize() sheets("blad2").select me.combobox1.additem Range("c3") me.combobox1.additem Range("c4") me.combobox1.additem Range("c5") 'etc.. Sheets("blad1").select End Sub[/code:1:26b0de56e9] Doet voor mij de truc en aangezien er een hoop waarden in ongeveer 90 cellen toch niet gebruikt worden, valt de herhaling .additem best mee. Mocht je een beter uitwerking hebben, dan houd ik mij uiteraard aanbevolen.
  • :roll: En hoeveel regels krijg je dan uiteindelijk?
  • Ongeveer 50. Maar ja, met copy - paste kom je een heel eind :lol:
  • En waarom zou jet het niet in een loop zetten?
  • Hoe bedoel je dat precies?
  • Met een loop heb je niet meer dan 8 regels nodig. De computer moet dom werk doen, niet jij.

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.