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

Hoe index- of rijnummer uit ActiveX combobox bepalen?

Status
Niet open voor verdere reacties.

ML71

Gebruiker
Lid geworden
10 mrt 2006
Berichten
70
Ik ben bezig met een project waarvoor ik in combobox(en) dynamisch ranges toe wil voegen. Ik ben hiervoor dus aangewezen op de ActiveX versie van de combobox, maar hiebij loop ik tegen het probleem aan dat deze in de gekoppelde cel niet het indexnummer maar de waarde van het geselecteerde item weergeeft. Voor verdere bewerking heb ik ofwel het indexnummer ofwel het rijnummer van het geselecteerde item nodig.

Kan iemand mij vertellen hoe ik dat voor elkaar krijg? Ik heb een bestand bijgesloten waarin ik zowel de normale als de activex versie van de combobox heb opgenomen en de bedoeling is dus dat deze hetzelfde gaan werken.

Bekijk bijlage Book1.xlsm
 
Bij selectie kleurt het gekozen item paars, bij selectie van de cel wordt de waarde in de box weergegeven en het item ook weer paars weergegeven.
Wat is precies de bedoeling?
Uit je tekst krijg ik de indruk dat je onder de combobox een item wil selecteren en dat dan in de combobox dat item moet worden weergegevn, is dat juist? Normaliter is de procedure juist andersom en gebruik je juist een combobox om wat te veranderen. Graag wat duidelijkheid. En verder: moet het resultaat altijd in rij 5 komen of in de rij waarin het item is gekozen?
 
Het is wat onconventioneel inderdaad, maar het is echt de bedoeling dat de gebruiker zowel via de box als via de lijst zelf moet kunnen selecteren, bij selectie in de lijst zelf wordt de waarde teruggegeven aan de box zodat alles weer strookt. Er is ook een klein stukje VBA code opgenomen bij het tabblad om eea voor elkaar te krijgen.
De teruggegeven waarde moet altijd in dezelfde cel (in dit geval op rij 5) terecht komen.

In de 'oude' situatie was het allemaal geen probleem doordat de box een indexnummer teruggaf waar vervolgens weer mee gerekend kon worden en waarmee met de index functie de geselecteerde waarde kon worden opgezocht, maar dat is dus met een activex object niet zomaar te doen.
 
Verwijder je macro en plaats er deze twee voor in de plaats voor werking in combinatie met de active-x-combobox en selectie van de waarden daaronder.
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("H5:H13"), Target) Is Nothing Then
Range("H5:H13").Interior.ColorIndex = xlColorIndexNone
Target.Interior.ColorIndex = 8
ComboBox1.Value = Target.Value
End If
End Sub
Private Sub ComboBox1_Change()
Range("H5:H13").Interior.ColorIndex = xlColorIndexNone
With ComboBox1
Range("K5") = .ListIndex + 1
Range("H" & .ListIndex + 5).Interior.ColorIndex = 8
End With
End Sub
 
Dit werkt inderdaad helemaal zoals ik wil. Hartelijk dank voor je hulp!
 
Ik zag te laat dat de kleur van de cel paars moet zijn, maak daarom in beide macro's de colorindex gelijk aan 7 in plaats van 8.
Ik vind die macro's overigens een merkwaardige manier van handelen, ik zou er niet voor kiezen. Maar als jij er gelukkig mee bent, dan is het ok natuurlijk.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan