• 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.

keuzelijst in combobox afhankelijk maken van eerdere keuze

Status
Niet open voor verdere reacties.

willie76

Gebruiker
Lid geworden
6 nov 2010
Berichten
124
Forumleden,

Is het mogelijk om de keuzelijst in combobox2 afhankelijk te laten worden van de keuze die in combobox1 gemaakt is ???

En hoe programmeer je dat dan in VBA ???

Ik heb internet al (helemaal?) afgestruind op zoek naar t antwoord, maar kan het nergens vinden.......

Bedankt alvast voor de hulp
 
Je kunt bijvoorbeeld de rowsource aanpassen. Of de items vullen van de tweede. Maar is wat makkelijker uit te leggen als je zegt wat er in komt staan en hoe je aan de gegevens komt (range? database? functie?)
 
Hallo Rene,

Bij deze het voorbeeldbestand. De bedoeling is dat als er bij functie arts wordt ingevuld, bij de optie "gevolgde training" ook ALS/AED beschikbaar komt.
Bij alle overige functies zou ik alleen BLS/AED en PBLS/AED willen zien verschijnen.

Ik heb echt geen flauw idee hoe je dat zou moeten aanpakken binnen vba.

Hopelijk kun/wil je me verder helpen??!!

Willie
 

Bijlagen

Ik zal er zo even naar kijken. Tip 1: geef je controls wat duidelijkere namen. TextBox3_AfterUpdate() zegt me niet zoveel. txtMicroSectieNr_AfterUpdate() des te meer ;)
Rowsource van combobox 3 uitzetten en dan de volgende code toevoegen:
Code:
Private Sub UserForm_Initialize()
    FillTrainingCombo
End Sub
Private Sub FillTrainingCombo()
    With Me.ComboBox3
        .Clear
        .AddItem ("BLS/AED")
        .AddItem ("BLS/PBLS")
        If Me.ComboBox2.Value = "Arts(-assistent)" Then .AddItem ("ALS/AED")
    End With
End Sub
Private Sub ComboBox2_Click()
    FillTrainingCombo
End Sub
Als je de data niet via code wilt toevoegen zul je twee secties op je Data tabblad moeten zetten. Eén voor artsen, één voor de rest. Je kunt dan de Rowsource gebruiken door zoiets:
Code:
Private Sub FillTrainingCombo()
   If Me.ComboBox2.Value = "Arts(-assistent)" Then 
      Me.ComboBox3.RowSource="Artsfuncties"
   else
      Me.ComboBox3.RowSource="functies"
   endif
End Sub
 
Laatst bewerkt:
Hallo Rene,

Thx voor de code.

Bedankt voor de tip van de benamingen.
Ik ben nog een newbie wat betreft VBA-codes, dus ben ik vaak al heel blij als mensen op o.a. dit forum me willen helpen met een code-probleem.
Vaak kopieer ik dan 1-op-1 de code in mn VBA, zonder verder te letten op benamingen. Maar k zal er nu extra op gaan letten.

Zijn er wat dat betreft nog specifieke regels waar ik rekening mee moet houden ???

Willie
 
Ik denk dat de meeste van ons wel de Hongaarse notatie gebruiken. Dat houdt het overzichtelijk en zorgt ervoor dat je aan de naam al ziet wat voor 'n variabele je gebruikt.
Als extra controle zou ik Option Explicit bovenaan je module zetten. Als je dan bijvoorbeeld de code a = 3 neerzet ZONDER dat je a gedeclareerd hebt, krijg je een compiler error. Het vooraf declareren van variabele scheelt weer in typefouten.
http://en.wikipedia.org/wiki/Hungarian_notation
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan