Avatar billede Sigma Pi Juniormester
08. januar 2008 - 13:02 Der 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)

Håber én eller anden kan hjælpe mig!
Avatar billede supertekst Ekspert
08. januar 2008 - 13:12 #1
Skulle nok være muligt - anvender du en userform til kombinationslisterne?
Avatar billede supertekst Ekspert
08. januar 2008 - 13:39 #2
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
Avatar billede Sigma Pi Juniormester
08. januar 2008 - 14:13 #3
Ø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.

Er VBA egentlig ikke også et program for sig?

Jeg håber du har lidt tålmodighed?
Avatar billede Sigma Pi Juniormester
08. januar 2008 - 14:14 #4
* lagde ikke SKJUL på ... *
Avatar billede supertekst Ekspert
08. januar 2008 - 14:24 #5
Hvilken version af Excel anvender du?

Den viste kode anvender kontrol-elemter direkte i arket - altså ikke via userform.

Hvis du sender en mail til: pb@supertekst-it.dk - så returnere jeg min fil.
Avatar billede Sigma Pi Juniormester
08. januar 2008 - 15:02 #6
Det er Excel 2003.
Men jeg er nok ikke helt sikker på, hvad jeg skal stille op med koden? Men jeg sender dig da gerne en mail  =o)
Avatar billede roenving Novice
08. januar 2008 - 17:32 #7
Du vil nok få flere forskellige inputs, hvis du smider spørgsmålet i http://www.eksperten.dk/spm/Programmer/Regneark/Excel/ eller http://www.eksperten.dk/spm/Programmering/Visual-Basic/ !-)
Avatar billede Sigma Pi Juniormester
09. januar 2008 - 07:52 #8
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.
Avatar billede supertekst Ekspert
18. januar 2008 - 17:16 #9
Her er et svar..
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester