Excel combobox via formulier in VBA macro werkt niet

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • RubenKe
  • Registratie: Juni 2024
  • Laatst online: 02-06-2024
Hoi,

ik probeer via een macro via een userform een combobox met keuzelijst te creeëren met de waarden uit sheet 'kieswagen'. De gekozen waarde moet worden weggeschreven in de eerstvolgende lege cel in kolom E van sheet 'blad1'

Helaas geeft hij mij de waarden al niet weer in de combobox. Wat doe ik verkeerd?
Iemand een oplossing?

Alvast bedankt.

Private Sub KiesWagen_Initialize()


WagenCombo.List = Sheets("wagenlijst").Range("h1:h3").Value

End Sub

Sub KIES_WAGEN()


Dim KeuzeWagen As Variant


' Maak Combobox WagenCombo zichtbaar
KiesWagen.Show


' Ontvang de geselecteerde waarde uit de ComboBox
KeuzeWagen = KiesWagen.WagenCombo.Value


' Zoek de eerstvolgende lege cel in kolom E van Blad1 en schrijf de gekozen waarde van de combobox weg
Sheets("blad1").Select
Range("E" & Rows.Count).End(xlUp).Offset(1, 0).Value = KeuzeWagen


End Sub

Acties:
  • 0 Henk 'm!

  • Reinier
  • Registratie: Februari 2000
  • Laatst online: 12:40

Reinier

\o/

Wordt KIES_WAGEN() wel ergens uitgevoerd?

Acties:
  • 0 Henk 'm!

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Welkom :)

Het helpt als je wat troubleshooting info geeft. Wat werkt wel? Welke foutmeldingen krijg je wanneer?

Je gebruikt twee namen voor de sheet (wagenlijst/kieswagen), en hebt geen code die de combobox daadwerkelijk aanmaakt. Afhankelijk van dat tweede, werkt de code hier prima - als je geen .list gebruikt maar WagenCombo.ControlFormat.List

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
RubenKe,
Met je naamgeving maak je je probleem wel erg ingewikkeld (althans voor mij). Je kunt best eerst de naamgeving van Excel gebruiken en als de code met die namen werkt, pas dan eventueel die naamgeving aan. Ik begrijp je tekst als volgt:
- Je hebt een blad met de naam Blad1 en een blad met de naam Wagenlijst
- In het blad Wagenlijst heb je in H1:H3 namen van wagens staan.
- Je hebt een userform met de naam KiesWagen.
- In die userform heb je een listbox met de naam WagenCombo.
- De listbox kun je vullen zonder code: rechtsklik op de listbox, kies Eigenschappen, en vul in bij RowSource: =Wagenlijst!H1:H3.
Je kunt dan als macro's gebruiken:
- bij de userform KiesWagen:
code:
1
2
3
4
Private Sub WagenCombo_Click()
Sheets("Blad1").Range("E" & Sheets("Blad1").Rows.Count).End(xlUp).Offset(1, 0).Value = KiesWagen.WagenCombo.Value
Unload KiesWagen
End Sub

- In een module:
code:
1
2
3
Sub KIES_WAGEN()
KiesWagen.Show
End Sub

Als je dan die laatste macro uitvoert, gebeurt alles naar wens.