Avatar billede sophusborch Nybegynder
04. oktober 2012 - 12:55 Der er 6 kommentarer

Returnere hele lister i en dropdown ud fra bestemt kriterier

Jeg vil gerne kunne returnere en hel liste i en dropdown.

På mit ark "kundeoprettelse" har jeg en dropdown (Celle C6) hvor man kan vælge et land (Danmark, Finland, Norge eller Sverige).

På mit ark "prislister", har jeg hele prislisten fra de 4 forskellige lande, som eksempelvis er defineret således:

Kolonne 1; Kolonne 2
DK 11;    Listepris
DK 12;    Fast pris
NO 11;    Norsk 11
NO 14;    Norsk 14
osv.

Kolonne 1, viser således navnet på prisgruppen og kolonne 2 er en beskrivelse.

Når jeg så vælger det pågældende land i C6, vil jeg gerne have returneret hele listen fra kolonne 1 i en dropdown i celle C37 på arket "kundeoprettelse". Dvs. hvis jeg vælger Danmark, vil jeg gerne have at det er prisgrupperne fra Danmark, der bliver vist, i dette tilfælde:
DK 11
DK 12

Således, at jeg kan vælge mellem prisgrupperne for de enkelte lande.

På forhånd tak for hjælpen
Avatar billede supertekst Ekspert
05. oktober 2012 - 00:14 #1
Har konstrueret en model - hvis du sender en mail så returnerer jeg denne. @-adresse under min profil.

Koden vil herefter blive vist.
Avatar billede sophusborch Nybegynder
07. oktober 2012 - 20:20 #2
Har sendt en mail :-)
Avatar billede supertekst Ekspert
07. oktober 2012 - 23:32 #3
VBA-kode "under" arket Kundeoprettelse:

Private Sub ComboBox1_Click()
Dim antalRækker As Long, ræk As Long, landeKode As String
Dim arkKundeOp, arkPriser
    Set arkKundeOp = Sheets("Kundeoprettelse")
    Set arkPriser = Sheets("Prislister")
    arkKundeOp.ComboBox2.Clear
   
    If arkKundeOp.ComboBox1 <> "" Then
        landeKode = arkKundeOp.ComboBox1
       
        arkPriser.Activate
        antalRækker = ActiveCell.SpecialCells(xlLastCell).Row
       
        For ræk = 1 To antalRækker
            If InStr(arkPriser.Range("A" & ræk), landeKode) = 1 Then
                arkKundeOp.ComboBox2.AddItem arkPriser.Range("A" & ræk)
            End If
        Next ræk
       
        arkKundeOp.Activate
        ComboBox1 = ""
    End If
End Sub
Avatar billede sophusborch Nybegynder
08. oktober 2012 - 21:04 #4
Tak for hjælpen indtil videre :-)

Jeg kan godt se at det virker efter hensigten, men der er dog den hage ved den, at den efter valget i den første dropdown ikke viser hvilket land der er valgt.

Jeg har fundet en anden løsning ved at markere de respektive prislister og så døbe dem efter de respektive lande. Således kan jeg bruge funktionen indirekte på følgende måde:

=INDIREKTE(C6)

Dette virker også efter hensigten. Næste opgave er så at få vist beskrivelsen i den næste celle ud fra valget.

Hvorfor vælge vba frem for funktioner? Kan man ridse nogle fordele/ulemper op for disse?
Avatar billede sophusborch Nybegynder
08. oktober 2012 - 21:06 #5
Lad mig lige tilføje at jeg ikke ved om det er en uskøn løsning jeg har fundet frem til sådan rent Excel-mæssigt.
Avatar billede supertekst Ekspert
08. oktober 2012 - 22:42 #6
arkKundeOp.Activate
        ComboBox1 = ""    '<--- slet denne linje, så vises landet,der er valgt
    End If
End Sub
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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