Avatar billede Mathias- Nybegynder
01. juli 2011 - 14:41 Der er 5 kommentarer og
1 løsning

Rulle liste

Hej  Jeg har en liste med data.
  A B
1 x 2
1 x 2
3 x 1
4 x 2
5 x 3
6
7
...
1050

x repræsenterer et et navn på en fødevare, fx. fløde. tallet 1 ud fra betyder at det er et mælkeprodukt.

Nu vil jeg gerne have en rulleliste på et andet ark.  I denne rulleliste skal der være alle fødevarer.

Så skal der være en funktion, så man kan vælge kun at få vist fx. mælkeprodukter (1) i listen. el. både 1 og 2.

(der er i alt 18 'sorteringer')  (der er i alt 1050 fødevarer)

Er der en som har et forslag til hvordan jeg kan løse dette problem? :)
Avatar billede supertekst Ekspert
01. juli 2011 - 14:59 #1
Har du set på filtrering - kunne det anvendes?

Ellers kan det løses via VBA - men det ville nok hjælpe med et eks. på nogle får rækker med realistiske data.
Avatar billede Mathias- Nybegynder
01. juli 2011 - 15:02 #2
kan jeg sende arket til dig pr. email? :)
Avatar billede supertekst Ekspert
01. juli 2011 - 15:09 #3
Det kan du - @-adresse under min profil.

Gerne med lidt beskrivelse af det foreventede.
Avatar billede Mathias- Nybegynder
01. juli 2011 - 15:19 #4
Jeg har sendt en e-mail nu :)
Avatar billede supertekst Ekspert
02. juli 2011 - 14:04 #5
Const produktRæk1 = 10
Const produktRækX = 28
Const arkListeNavn = "Her skal rullelisten være"
Dim arkListe As Worksheet

Const arkDataNavn = "data_mad"
Dim arkData As Worksheet, antalRæk As Long
Const dataStartRæk = 4
Public Sub opbygListe1()
Dim ræk As Byte
        Set arkData = ActiveWorkbook.Sheets(arkDataNavn)
        arkData.Activate
        antalRæk = ActiveCell.SpecialCells(xlLastCell).Row
       
        ComboBox1.Clear
        ComboBox2.Clear
       
        For ræk = produktRæk1 To produktRækX
            ComboBox1.AddItem Format(Cells(ræk, 1), "0#") & " " & Cells(ræk, 2)
        Next ræk
        ComboBox1.ListIndex = 0
        ComboBox1.DropDown
       
        Set arkListe = ActiveWorkbook.Sheets(arkListeNavn)
        arkListe.Activate
End Sub
Private Sub ComboBox1_Change()
Dim nr As Byte
    If ComboBox1 <> "" Then
        nr = Left(ComboBox1, 2)
        opbygFødevareListe nr
    End If
End Sub
Private Sub opbygFødevareListe(nr)
Dim id As Byte, ræk As Long
    Application.ScreenUpdating = False
    ComboBox2.Clear
   
    With arkData
        For ræk = dataStartRæk To antalRæk
            If nr = 0 Then
                ComboBox2.AddItem .Range("A" & ræk)
            Else
                id = .Range("B" & ræk)
                If id = nr Then
                    ComboBox2.AddItem .Range("A" & ræk)
                End If
            End If
        Next ræk
    End With
    Application.ScreenUpdating = True
   
    ComboBox2.ListIndex = 0
    ComboBox2.DropDown
End Sub
Avatar billede Mathias- Nybegynder
02. juli 2011 - 14:16 #6
Det virker ikke helt.

Når jeg åbner arket virker det udadtil.

Når jeg blot trykker på designertilstand, åbner VB og lukker det igen. slår designertilstand fra og prøver at åbne det, så kommer den op med: runtime error 380

Så trykker jeg debug:

Denne linje bliver markeret med gul, når jeg åbner det i VB:  ComboBox2.ListIndex = 0

Hvad kan der være galt?
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