08. januar 2008 - 13:02Der er
8 kommentarer og 1 løsning
Excel: Valg i kombiboks pba. valg i tidligere kombiboks.
Hej med jer alle Jeg er ny på dette forum, og har væltet nettet rundt, for at finde steder som kan svare på mit spørgsmål. Men det er desværre ikke lykkedes endnu.
Men det lader til, at der er nogle kvikke hoveder på denne site, så nu prøver jeg her!
Jeg er igang med at lave et større excelark, fordelt på 3 faneblade. I min egen lille verden, er jeg nået langt, men kan stadig ikke løse det sidste af mine problemer, som vil give tingene en kosmetisk finesse.
Jeg ville gerne have muligheden for, at lade valget i én kombinationsboks bestemme de efterfølgende valg i en anden kombinationsboks.
Som de f.eks. har på bilbasen.dk, hvor man kan vælge bilmærke, og her efter de forskellige modeller for hver enkelt mærke. Jeg har oprettet forskellige lister, hvoraf data'ene til kombinationsboksene kommer fra. Men hvordan får jeg kombinationsboksenes indhold til at ændre sig, pba. indholdet/valget i den forrige?
Eksempel (bilbasen): Hvis man vælger "Ford" i første kombinationsboks, skal der i næste kombinationsboks være modellerne Mondeo, Focus og Fiesta: Hvis jeg istedet vælger "Toyota", skal der i næste kombinationsboks komme modellerne Avensis, Corolla, Yaris.
Jeg er på ingen tænkelig måde nogen Excel super haj, og har lært mig selv de få ting jeg kan. Derfor er jeg ikke 100% velbevandret i termer og gloser fra Excel. Dette vil nok have betydning for den eventuelle forklaring? Jeg har søgt og kigget på de indlæg som allerede er her, og kunne ikke helt forstå svarene. Jeg er ikke vant til at bruge VBA, men har mod på stort set hvad som helst, for at få tingene til at virke. Desuden bruger jeg en dansk version af Excel =o)
Det ville være en fordel at have følgende opdeling Kolonne A Bilmærker og fra Kolonne B - ?? de forskellige modeller i samme række pr.mærke - så kunne kode forenkles. Men det har du måske allerede?
Eksempel - lidt forenklet: Private Sub worksheet_activate() With ComboBox1 .AddItem "Ford" .AddItem "Toyota" End With
End Sub Private Sub ComboBox1_Change() With ComboBox1 If .Value = "Ford" Then indsætFord Else If .Value = "Toyota" Then indsætToyota End If End If End With End Sub Private Sub indsætFord() With ComboBox2 .Clear .AddItem "model F1" .AddItem "model F2" .AddItem "model F3" .ListIndex = 0 End With End Sub Private Sub indsætToyota() With ComboBox2 .Clear .AddItem "model T1" .AddItem "model T2" .AddItem "model T3" .ListIndex = 0 End With End Sub
Ørhm ... jeg lagde ikke på, at jeg kun er en noob på dette område. Og jeg er ikke sikker på, at jeg bruger userform, hvis det betyder, at jeg skal forstå hele den kodning, som du lige har smidt ind.
Jeg laver en liste, markere den, og definere et navn til den i Excel. Så vælger jeg "kombinationsliste" fra menulinierne i Excel, og højreklikker på denne og vælger "formater kontrolelement". Herunder kan jeg definere hvorfra den skal hente data (den føromtalte liste), hvilken cellekæde den skal referere til .. og det er vel grundlæggende det. Den kodestreng du har lavet er vel noget VBA ikke sandt? Det har jeg ikke en bjælde forstand på, men er da villig til at lære ...!
Minder mig om, da jeg forsøgte at sidde og scripte, når jeg lavede eventyr til NeverWinter Nights .... ha ha
Efterfølgende er valgene i kombinationsboksene medvirkende til, at Excel laver nogle opslag, og lægger data'ene fra de opslag sammen. Jeg skal lige sige, at mit egentlig projekt ikke har noget med biler at gøre, men formålet er det samme.
Alle tiders Roenving. Jeg kunne bare ikke lige finde et bedre sted, end det jeg valgte ;o) Jeg prøver lige at lægge den derunder også! Tak skal du have.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.