Voorwaardelijke selectie in combobox 2 a.d.h.v. invoer in combobox 1

Status
Niet open voor verdere reacties.

GTi05

Nieuwe gebruiker
Lid geworden
19 dec 2011
Berichten
2
Beste helpmij-ers,

De volgende code maakt automatisch een selectie in combox 'comboOpl' afhankelijk van de invoer in combox 'comboAuto'. De lijsten in de combo's zijn werkbladnamen waar de ingevoerde gegevens in het userform naartoe geschreven worden. Het gaat hier om een invoerformulier van gegevens over vrachtwagens en bijbehorende trailers ('opleggers').

Als ik in comboAuto "Auto 01" kies, moet in comboOpl "Oplegger 01" gekozen worden (als de cijfers in de naam gelijk zijn dus). Echter, voor "Auto 06" is geen oplegger, dus dan moet "Geen" in comboOpl gekozen worden.

Ik gebruik de volgende code om te zoeken naar de Oplegger-naam in de werkmap. Komt het opleggernummer niet voor, dan moet "Geen" als oplegger gekozen worden.

Code:
Private Sub comboAuto_AfterUpdate()
With Me
    For i = 1 To Sheets.Count
        If Mid(.comboAuto.Text, 5, 3) = Mid(Sheets(i).Name, 9, 3) Then
            .comboOpl = Sheets(i).Name
        Else
            .comboOpl = "Geen"
        End If
    Next i
End With
End Sub

Nu het probleem: als ik het userform open en ik selecteer "Auto 01" dan wordt direct als oplegger "Geen" gekozen, terwijl er wel een "Oplegger 01" in de werkmap is. Haal ik de regel Else weg, dan werkt het wel, maar dan kan ik dus niet "Geen" als oplegger laten kiezen. Ik heb het idee dat de 'For...Next' moeilijk doet....

Ik ben benieuwd wat ik hier nu fout doe.
 
De For .. Next loopt door alle sheets heen, ongeacht of de lus wat vindt of niet. Dus als je 6 sheets hebt, en sheet3 bevat de juiste waarde, dan wordt die toegewezen aan de combobox, maar omdat de lus daarna doorgaat naar de volgende sheet, begint het feest van de IF..THEN..ELSE weer van voren af aan, en wordt de bij sheet3 gevonden waarde keurig overschreven door de bij sheet4 niet gevonden waarde, zijnde "Geen". Je moet er dus voor zorgen dat de lus wordt afgebroken als een waarde is gevonden. Voeg dus een regel toe boven de Else: Exit For
 
Octafish,

Je oplossing werkt perfect. Simpel, maar je moet het net even weten. Dank je wel!
Ik zet 'm op opgelost.


GTi05
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan