Goedemiddag,
Voor mijn werk probeer ik een excel te maken waarin bepaalde codes opgezocht kunnen worden. Ik krijg het echter niet werkend. Om een goed beeld van mijn Excel te krijgen:
Ik heb 2 werkbladen: "Invoer" en "data"
Op Invoer staan 2 keuzelijsten, waarbij de 2de gevuld word aan de hand van wat er in de eerste ingevuld word.
De waarde van de eerste keuzelijst komen uit "Groepslijst" en is simpel ongeveer 20 cellen onder elkaar ergens op de "data" worksheet.
Onder het eerste zoekveld heb ik de naam van de gekozen groep staan met de formule
=INDEX(Groeplijst;Invoer!F7) (note, F7 zet het keuzeveld het nummer van de keuze neer)
De cel waar dit instaat heb ik "selectie" genoemd zodat ik er naar kan refereren
De tweede keuzelijst word gevuld door kleine matrixjes verspreid over de worksheet "data" worksheet. Elke kleine matrixje draagt zijn groepsnaam. Matrixjes zijn altijd 2 kolommen groot (een met omschrijving, een met code) en varierend van 2 tot 15 rijen lang.
Het vullen van de keuzelijst werkt naar behoren met een macro.
Nu wil ik, dat als er in de onderste ook een keuze is gemaakt, Excel onder de keuzemenus laat zien wat er is gekozen en welke code daarbij hoort
Daar gaat het mis.
Als ik handmatig invul in een van de cellen eronder:
=INDEX(Koeling;F16;1) (note, F16 zet de keuzelijst zijn output neer, Koeling is 1 van de kleine matrixjes)
Dan doet ie het. Hij returned de waarde van het kruispunt F16 met 1 in matrixje Koeling.
Maar ja, dan heb ik alleen dat van Matrixje Koeling en die moet juist variabel zijn, afhankelijk van de groep die in het eerste keuzeveld word gekozen.
Dus ik dacht, ik heb de cel die de naam van de groep draag en variabel is "selectie" genoemd, dus dacht ik
=INDEX(selectie;F16;1)
Maar dan krijg ik #VERW!
Dus dacht ik, misschien moet ik het met een macro oplossen.
Maar ook daar. Statisch werkt het wel:
Maar hoe word het variabel?
Voor mijn werk probeer ik een excel te maken waarin bepaalde codes opgezocht kunnen worden. Ik krijg het echter niet werkend. Om een goed beeld van mijn Excel te krijgen:
Ik heb 2 werkbladen: "Invoer" en "data"
Op Invoer staan 2 keuzelijsten, waarbij de 2de gevuld word aan de hand van wat er in de eerste ingevuld word.
De waarde van de eerste keuzelijst komen uit "Groepslijst" en is simpel ongeveer 20 cellen onder elkaar ergens op de "data" worksheet.
Onder het eerste zoekveld heb ik de naam van de gekozen groep staan met de formule
=INDEX(Groeplijst;Invoer!F7) (note, F7 zet het keuzeveld het nummer van de keuze neer)
De cel waar dit instaat heb ik "selectie" genoemd zodat ik er naar kan refereren
De tweede keuzelijst word gevuld door kleine matrixjes verspreid over de worksheet "data" worksheet. Elke kleine matrixje draagt zijn groepsnaam. Matrixjes zijn altijd 2 kolommen groot (een met omschrijving, een met code) en varierend van 2 tot 15 rijen lang.
Het vullen van de keuzelijst werkt naar behoren met een macro.
Nu wil ik, dat als er in de onderste ook een keuze is gemaakt, Excel onder de keuzemenus laat zien wat er is gekozen en welke code daarbij hoort
Daar gaat het mis.
Als ik handmatig invul in een van de cellen eronder:
=INDEX(Koeling;F16;1) (note, F16 zet de keuzelijst zijn output neer, Koeling is 1 van de kleine matrixjes)
Dan doet ie het. Hij returned de waarde van het kruispunt F16 met 1 in matrixje Koeling.
Maar ja, dan heb ik alleen dat van Matrixje Koeling en die moet juist variabel zijn, afhankelijk van de groep die in het eerste keuzeveld word gekozen.
Dus ik dacht, ik heb de cel die de naam van de groep draag en variabel is "selectie" genoemd, dus dacht ik
=INDEX(selectie;F16;1)
Maar dan krijg ik #VERW!
Dus dacht ik, misschien moet ik het met een macro oplossen.
Maar ook daar. Statisch werkt het wel:
Code:
Sub Groepkeuzelijst_BijWijzigen()
Dim IRange As Range, Mycell As Range
ActiveSheet.Shapes("PechKeuzelijst").Select
With Selection
.ListFillRange = Range("D14").Text
.LinkedCell = "F16"
.Display3DShading = False
End With
Set IRange = Sheets("data").Range("M2:M10")
Set Mycell = Sheets("Invoer").Range("C24")
Mycell.Offset(0, 2).Value = Application.WorksheetFunction.Index _
(IRange, 3, 1)
End Sub
Maar hoe word het variabel?