Word VBA gegevens keuzelijst instellen

Status
Niet open voor verdere reacties.

frambrikoos

Gebruiker
Lid geworden
18 dec 2006
Berichten
5
Hoi

hoe kan ik in VBA Word de keuzelijst in een combobox instellen?

1e keer in VBA :o


mvg
 
Private Sub Userform_Activate()

Naamvanjecombobox.AddItem "1"
Naamvanjecombobox.AddItem "2"

End Sub
 
Laatst bewerkt:
kan ik die items ook ophalen uit een lijst die opgenomen is in een ander bestandje?
Hoe doe ik dat?

BTW thx voor snelle antwoord
 
Volgens mij niet. Tenminste niet dat ik weet. Leuk probleem. Maar is het een grote lijst dan.

Het is denk ik wel makkelijker om dat gewoon in WORD te doen, dan via een extern bestand.
 
Keuzelijst instellen

Dag Frambikoos,

Natuurlijk kun je gegevens uit een ander bestand ophalen en in een listbox of combobox zetten.
Wat voor gegevens staan er in het bestandje en welke gegevens wil je in de listbox?
 
het bestand zou zeer eenvoudig zijn en een lijstje bevatten met items. Kan zelfs in kladblok voor mijn part. Het heeft geen specifieke vormvereisten

Ik maak een bestand dat mijn collegae ook moeten gebruiken. Zij kennen VBA helemaal niet en de items gewoon in de code opnemen zorgt er een beetje voor dat ze op een bepaald moment zullen moeten beginnen foefelen en dat kan niet de bedoeling zijn he?!
 
Dag Frambrikoos,

Je verhaal is interessant, maar vertlet niets over wat je eigenlijk wilt. Als een computer gegevens uit een bestand moet lezen, moet je hem eerst laten weten wat voor gegevns hij kan verwachten. Bijvoorbeeld gegevens zijn van elkaar gescheiden door een \ of een / of een –. Zodat de computer weet waar het begin is en het eind enzovoort. Om het eenvoudig te maken zou je een ini bestand kunnen maken (in kladblok)

[Fruit]
1=Appel
2=Peer
3=Framboos
4=Bes

[Namen]
1=Piet
2=Jan
3=Gerrit

[Plaatsen]
1=Amsterdam
2=Rotterdam
3=Antwerpen


deze gegevens lees je met de volgende functie

Dim a() as String
Dim n as Integer
Dim o as Integer

Redim a(10)
o=-1
Do
n=n+1
s = System.PrivateProfileString("C:\Map\Bestand", "Namen", n)
If Len(s) Then o=o+1: a(o) = s
Loop While Len(s)
Redim Preserve a(o)
Combo1.List() = a


Je dimensioneert een array (a). Leest uit het bestand de namen en vult daarmee het array. Tot slot stop je het array in de combobox.

Je kunt ook meerdere kolommen in de combobox kwijt. Redom a(3,10), Combo1.Column() = a
 
Stel dat ik een notepad bestand maak zonder titel. De gegevens worden gescheiden door een nieuwe regel te nemen

appel
peer
druif
...


hoe ga ik in dit geval te werk?
 
Keuzelijst instellen

Dag Frambrikoos,

Je opent het bestand en leest regel voor regel en wijst de gegevens toe direct aan de combobox via Combo.AddItem gelezen item of aan een matrix die je nadien aan de combobox koppelt. Je kunt overigens ook alles ineens lezen en via Split(gelezentekst,vbCr) aan een matrix of een variant toewijzen.

Maar System.PrivateProfileString is geïntegreerd in VBA en daarom gemakkelijk en betrouwbaar.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan