• 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 VBA Excel

Status
Niet open voor verdere reacties.

Kevinw01

Gebruiker
Lid geworden
23 jun 2009
Berichten
85
Goedemiddag,

Ik heb een userform gemaakt in VBA die er voor zorgt dat de naam, achternaam, etc wordt weggeschreven naar het tabblad "blad2". Nu zou ik graag nog een combobox aan dit userform willen toevoegen waar uit iemand kan kiezen tussen hoog, gemiddeld, laag. Dit moet dan ook naar het tabblad "blad2" worden weggeschreven.

Het userform is zo opgebouwd dat het helemaal ingevuld kan worden en waarna er op de button ok wordt geklikt dan wordt dit weggeschreven naar het desbetreffende tabblad in excel.

Wie kan mij zeggen hoe ik de voorwaarden hoog, gemiddeld en laag kan meegeven aan de combobox in VBA zelf en niet door middel van data en valideren.

De combobox moet dus ook under de button "ok" vallen. Hieronder de code zoals ik hem nu heb:

Code:
'-- OK Button
Private Sub CommandButton1_Click()
'-- Invoeren van de textboxen.
    Sheets(2).Select
    Range("A" & CStr(Rows.Count)).End(xlUp).Select
    ActiveCell.Offset(1, 1).Value = Naam.Text
    ActiveCell.Offset(1, 2).Value = Achternaam.Text
    ActiveCell.Offset(1, 3).Value = Afdeling.Text
    ActiveCell.Offset(1, 4).Value = Onderwerp.Text
    ActiveCell.Offset(1, 5).Value = DatumAanvraag.Text
    ActiveCell.Offset(1, 6).Value = DatumEind.Text
    ActiveCell.Offset(1, 7).Value = Doel.Text
    ActiveCell.Offset(1, 8).Value = Opdracht.Text
'-- Aanroepen van de code voor het leegmaken van de textboxen.
    Call LeegTextBox
End Sub

Alvast bedankt :D

Groeten Kevin
 
Kevinw01,

Bedoel je dit?
Code:
Private Sub UserForm_Initialize()
  ComboBox1.AddItem "Hoog"        'ListIndex = 0
  ComboBox1.AddItem "Gemiddeld"   'ListIndex = 1
  ComboBox1.AddItem "Laag"        'ListIndex = 2
End Sub
Zelf even aanpassen waar het geplaatst moet worden.
Code:
ActiveCell.Offset(1, 9).Value = ComboBox1.Value
 
Laatst bewerkt:
Code:
Private Sub UserForm_Initialize()
    ComboBox1.List = Split("Laag|Gemiddeld|Hoog", "|")
End Sub

Code:
Private Sub CommandButton1_Click()
sq = Naam.Text & "|" & Achternaam.Text & "|" & Afdeling.Text & "|" & Onderwerp.Text & "|" & _
        DatumAanvraag.Text & "|" & DatumEind.Text & "|" & Doel.Text & "|" & Opdracht.Text & "|" & ComboBox1.Value
Sheets(2).[A65536].End(xlUp).Offset(1).Resize(, 9) = Split(sq, "|")
End Sub
 
Laatst bewerkt:
Wim, dank je voor je antwoord. Ik heb een stuk van jouw code en stuk van Rudi zijn code gebruikt.

Rudi het 2e stukje code dat begrijp ik niet helemaal zo goed? Ik zie wel dat jij mijn code heb vereenvoudigd. Maar waar staat die sq voor en is "I" dit je scheidingsteken? Wil je hem even stukje toelichten voor mij? Alvast bedankt.

In ieder geval heb ik het wel werkend gekregen, dank jullie wel :D

Groetjes Kevin
 
Laatst bewerkt:
Code:
Private Sub CommandButton1_Click()
 'variabele waarin alle waarden opgeslagen worden gescheiden door |
sq = Naam.Text & "|" & Achternaam.Text & "|" & Afdeling.Text & "|" & Onderwerp.Text & "|" & _
        DatumAanvraag.Text & "|" & DatumEind.Text & "|" & Doel.Text & "|" & Opdracht.Text & "|" & ComboBox1.Value
'ga naar eerste lege cel in kolom en vergroot dan het gebied tot 9 cellen naar rechts op de rij(omdat er 9 waarden zijn)
'verdeel nu de waarden in de variabele over deze 9 cellen volgens het scheidingsteken |
Sheets(2).[A65536].End(xlUp).Offset(1).Resize(, 9) = Split(sq, "|")
End Sub

Het doel van deze methode is om in 1 schrijfbeweging alle waarden te plaatsen ipv dit 9 verschillende malen te doen
 
Rudi, Helemaal helder :D

Maar die afkorting sq staat dat nog iets, of is dat gewoon een willekeurige naam van jou voor een variabele?

Groetjes
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan