Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

VBA/Word - gegevens van Excel in combobox

Pagina: 1
Acties:

  • efan
  • Registratie: Januari 2001
  • Niet online
ik heb een Excel bestand Data.xlsx en een word document met een aantal bladwijzers die ik door middel van een macro/vba wil invullen.
het excel bestand bevat als voorbeeld:
Afbeeldingslocatie: http://s16.postimg.org/66ttff7np/excel1.png

in het word document, heb ik en macro gemaakt met een formulier, die o.a. een combobox bevat:
Afbeeldingslocatie: http://s10.postimg.org/x8tq70z89/vba_combobox.png

ik loop echter vast met die combobox. ik wil dus zodra je de combobox aanklikt/opent, dat je dan de namen te zien krijgt uit het excel bestand (kolom C) en zodra je die kiest dat de bijbehorende gegevens in het formulier worden ingevuld (naam, adres, postcode, woonplaats).

ik heb nu de volgende code achter combobox1_click() hangen:
Visual Basic:
1
2
3
4
5
6
7
8
9
10
Private Sub ComboBox1_Click()

Dim Xlapp As Object, XLwb As Object, XlSht As Object
Dim LastRow As Integer
Set Xlapp = CreateObject("Excel.Application")
Set XLwb = Xlapp.Workbooks.Open("Data.xlsx")
Set XlSht = XLwb.Worksheets("Blad1")
ComboBox1.List = Sheets(1).Cells(1, 1).Resize(, 10).Value

End Sub


iemand die me een zetje in de juiste richting kan geven om dit werkend te krijgen?

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Niet in het click event maar in het form open event de combobox vullen met een loopje over de excelrange in combnatie met addItem?

Sowieso is natuurlijk een list vullen met één celwaarde een tikje apart.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

ido schreef op woensdag 04 maart 2015 @ 11:15:
ik wil dus zodra je de combobox aanklikt/opent, dat je dan de namen te zien krijgt uit het excel bestand (kolom C) en zodra je die kiest dat de bijbehorende gegevens in het formulier worden ingevuld (naam, adres, postcode, woonplaats).
De combobox vullen gaat niet met die code en gaat ook niet in het Click-event, op dat moment moet de box al gevuld zijn. Bij voorkeur doe je dat in het Initialize-event, bv. aldus:
code:
1
2
3
4
5
6
7
8
9
10
11
Option Base 1
Private Sub UserForm_Initialize()
Dim Xlapp As Object, XLwb As Object, XlSht As Object, x As Integer, MyArray(9)
Set Xlapp = CreateObject("Excel.Application")
Set XLwb = Xlapp.Workbooks.Open("map1.xlsm")
Set XlSht = XLwb.Worksheets("Blad1")
For x = 2 To 10
MyArray(x - 1) = XlSht.Range("C" & x).Value
Next x
UserForm1.ComboBox1.List() = MyArray
End Sub

Bij ' Private Sub ComboBox1_Click() ' schrijf je dan de code om de gegevens, behorend bij de gekozen naam, weg te schrijven.

  • efan
  • Registratie: Januari 2001
  • Niet online
Verwijderd schreef op donderdag 05 maart 2015 @ 15:06:
[...]
De combobox vullen gaat niet met die code en gaat ook niet in het Click-event, op dat moment moet de box al gevuld zijn. Bij voorkeur doe je dat in het Initialize-event, bv. aldus:
code:
1
2
3
4
5
6
7
8
9
10
11
Option Base 1
Private Sub UserForm_Initialize()
Dim Xlapp As Object, XLwb As Object, XlSht As Object, x As Integer, MyArray(9)
Set Xlapp = CreateObject("Excel.Application")
Set XLwb = Xlapp.Workbooks.Open("map1.xlsm")
Set XlSht = XLwb.Worksheets("Blad1")
For x = 2 To 10
MyArray(x - 1) = XlSht.Range("C" & x).Value
Next x
UserForm1.ComboBox1.List() = MyArray
End Sub

Bij ' Private Sub ComboBox1_Click() ' schrijf je dan de code om de gegevens, behorend bij de gekozen naam, weg te schrijven.
dat moet me een stukje verder helpen, bedankt! ik ga het morgen direct proberen _/-\o_