Waarde Combobox/Textbox afhankelijk van keuze in andere Combobox

Status
Niet open voor verdere reacties.

N1ckSch1lder

Gebruiker
Lid geworden
27 mrt 2017
Berichten
12
Goedemorgen,

Mijn 3e vraag op dit forum, ik hoop dat ik net zo goed kan worden geholpen als bij mijn vorige vragen.

Ik heb een database met leveranciers en hun emailadressen. Deze staan in de Sheet: "Database Leveranciers" waarbij de namen van de leveranciers in Kolom A staan en de emailadressen in Kolom E.
Leveranciersnamen zijn: Leverancier 1, Leverancier 2, Leverancier 3, .... , Leverancier 32
Leverancier emailadressen zijn: info@Leverancier1.nl, info@Leverancier2.nl, info@Leverancier3.nl, .... , info@Leverancier32.nl

In mijn userform (in sheet "Overzicht") heb ik (o.a.) twee comboboxen met de naam: LeverancierCombobox en EmailLCombobox.
Ik wil dat de EmailLCombox zich aanvult met het emailadres dat correspondeert met het emailadres horende bij de keuze van LeverancierCombox.
EmailLCombobox is nu een combobox omdat ik op dit moment nog zoek in de volledige lijst emailadressen. Als dit moet worden omgezet naar een textbox is dat geen probleem.

Code op dit moment is:

Code:
'Empty LeverancierComboBox
LeverancierComboBox.Clear
'Fill LeverancierComboBox
With LeverancierComboBox
LeverancierComboBox.List = Worksheets("Database Leveranciers").Range("A2:A32").Value
End With

'Empty EmailLComboBox
EmailLComboBox.Clear
'Fill EmailLComboBox
With EmailLComboBox
EmailLComboBox.List = Worksheets("Database Leveranciers").Range("E2:E32").Value


Graag hoor ik wat te doen!

Met vriendelijke groet,
Nick Schilder
 
Laatst bewerkt:
Als je maar 1 mailadres per leverancier hebt dan zou ik een textbox gebruiken.

Code:
Private Sub UserForm_Initialize()
  ComboBox1.List = Sheets("Database Leveranciers").Cells(2, 1).Resize(31, 5).Value
End Sub

Code:
Private Sub ComboBox1_Change()
  If ComboBox1.ListIndex > -1 Then TextBox1 = ComboBox1.Column(4)
End Sub
 
@VenA: Super, bedankt voor de heldere code! Het is gelukt!

Is het ook mogelijk, zoals je aangeeft, wanneer er meerdere emailadressen zijn per leverancier.
Bijvoorbeeld bij het volgende geval:
Een database met leveranciers, contactpersonene en hun emailadressen. Deze staan in de Sheet: "Database Leveranciers" waarbij de namen van de leveranciers in Kolom A staan de contactpersonen in Kolom B en emailadressen in Kolom E.
Leveranciers zijn: Leverancier 1, Leverancier 2, Leverancier 3, .... , Leverancier 32
Namen contactpersonen zijn, Naam 1, Naam 2, Naam 3 ... (per leverancier)
Leverancier emailadressen zijn: info@Leverancier1.nl, info@Leverancier2.nl, info@Leverancier3.nl ... (per contactpersoon)

Maakt het wat ingewikkelder maar uiteindelijk wel veeeel gebruiksvriendelijker!

Graag hoor ik nogmaals jouw/jullie advies!

Met vriendelijke groet,
Nick Schilder
 
Als je even een gelijkend voorbeeldje plaats dan zal het vast wel mogelijk zijn.
 
@VenA: Zie bijgevoegd een voorbeeld sheet. Als er een code kan worden weergegeven dan kan ik deze aanpassen op mijn eigen bestand.
De bedoeling zou dus zijn: ik selecteer Leverancier (combobox), ik selecteer contactpersonen uit een lijst contactpersonen die bij de leverancier hoort (combobox), emailadres komt naar boven (textbox), telefoonnr komt naar boven (textbox).

Mocht je meer informatie willen dan hoor ik het graag.

Bekijk bijlage Voorbeeld Forum VBA.xlsx
 
Het is dan wel handig als iig het userform al in het voorbeeldje staat.
 

Bijlagen

  • Voorbeeld Forum VBA.xlsb
    22,6 KB · Weergaven: 87
@VenA: Dit had ik nooit uit tutorials of video's kunnen halen! Onwijs bedankt voor de code, ik heb hem aangepast op mijn bestand en het werkt naar behoren.
 
Ik zou het blauwe gedeelte nog toevoegen in de combobox1.change()
Stel je maakt keuzes met combo 1 & 2, maar je komt erachter dat je de verkeerde keuze hebt gemaakt in combo 1, dan veranderd combobox2 en de textboxen niet mee.

Zo zijn ze weer leeg en moet je wel een nieuwe keuze maken in combo2.
Code:
Private Sub ComboBox1_Change()
  If ComboBox1.ListIndex > -1[COLOR=#0000ff] or combobox1 = ""[/COLOR] Then
[COLOR=#0000ff]       ComboBox2.ListIndex = -1[/COLOR]
[COLOR=#0000ff]       TextBox1 = ""[/COLOR]
[COLOR=#0000ff]       TextBox2 = ""[/COLOR]
    For j = 2 To UBound(ar)
      If ar(j, 1) = ComboBox1 Then
        If InStr(c00, ar(j, 2)) = 0 Then c00 = c00 & "|" & ar(j, 2)
      End If
    Next j
    ComboBox2.List = Split(Mid(c00, 2), "|")
  End If
End Sub
 
Ik zie niet het voordeel van 2 comboboxen:
 

Bijlagen

  • __Forum VBA_snb.xlsb
    20,4 KB · Weergaven: 73
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan