Avatar billede humanoid Nybegynder
25. januar 2007 - 11:36 Der er 12 kommentarer og
1 løsning

Finde valgte emner i en listbox

Jeg har lavet en listbox på et excelark, ikke i en form.

Hvordan finder jeg ud af hvad der er valgt i den listbox.

Jeg kan bruge funktionen:
"ActiveSheet.ListBoxes("ListBox1").ListCount - 1"

men ikke:
"ActiveSheet.ListBoxes("ListBox1").Selected(i)"

Den giver fejlen:
Metoden Select for klassen Range mislykkedes.

Skal emnerne tilgåes med en anden funktion ???
Avatar billede Slettet bruger
25. januar 2007 - 11:51 #1
Er det en form eller en control?
Er det multi eller enkelt line select?
/1
Avatar billede humanoid Nybegynder
25. januar 2007 - 11:57 #2
Det er multiselect og ikke en form
Avatar billede Slettet bruger
25. januar 2007 - 12:00 #3
Dette vil alerte alle dine selectede værdier.

Dim i As Integer
With ActiveSheet.ListBox1
    For i = 0 To .ListCount - 1
        If .Selected(i) Then
            MsgBox (.List(i))
        End If
    Next
End With

/1
Avatar billede humanoid Nybegynder
25. januar 2007 - 12:06 #4
Det virker ikke det har jeg prøvet.
Object doesn´t support this property or method

Jeg opretter listbixen med:
    batches = ListContents("C")
  ActiveSheet.ListBoxes.Add(770, 250, 300, 10).Select
    With Selection
        .List = batches
        .MultiSelect = xlSimple
        .Display3DShading = False
        .name = "ListBox1"
    End With
Avatar billede humanoid Nybegynder
25. januar 2007 - 12:09 #5
fejl i linien her:
With ActiveSheet.ListBox1
Avatar billede Slettet bruger
25. januar 2007 - 13:02 #6
Puha,

Jeg må give fortabt med formmetoden..

Er det nødvendigt at lave en ny listbox hver gang? Ellers kan du lave det med controls i stedet for forms.
Avatar billede humanoid Nybegynder
25. januar 2007 - 13:20 #7
Det jeg bruger det til er at udvælge en række emner i noget importerede data. Emnerne kan variere, så derfor opdateres listboxen dynamisk alt efter hvor mange emner den importerede data indeholder.

Hvordan laves det med controls ???
Avatar billede Slettet bruger
25. januar 2007 - 14:27 #8
Du kan gøre det op denne måde:
Vis toolbaren control toolbox og indsæt en listbox.
For at loade din data til listboxen, kan du bruge min Update funktion, hvor input er et array (Jeg går ud fra din ListContents returnerer et array).
.Visible true/false er for at undgå en bug i excel (Det var i hvert fald den eneste måde, jeg kunne få det til at virke på).
På min computer passer det fint med at adde 13 til højden for hver linje.

Function Update(inputArr)
    Dim i As Integer
    With ActiveSheet.ListBox1
        .Visible = False
        Do While .ListCount > 0
            .RemoveItem (i)
        Loop
        .MultiSelect = 1
        .Height = 0
        For i = 0 To UBound(inputArr)
            .Height = .Height + 13
            .AddItem (inputArr(i))
        Next
        .Visible = True
    End With
End Function
Function alertValues()
    Dim i As Integer
    With ActiveSheet.ListBox1
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                MsgBox (.List(i))
            End If
        Next
    End With
End Function
Avatar billede humanoid Nybegynder
26. januar 2007 - 08:04 #9
Det hjælper ikke noget, jeg render stadig ind i problemer med .selected(i) funktionen. som jeg nævnte først.
Avatar billede humanoid Nybegynder
26. januar 2007 - 08:07 #10
Dim i As Integer
With ActiveSheet.ListBox1
    For i = 0 To .ListCount - 1
her ---->  If .Selected(i) Then
            MsgBox (.List(i))
        End If
    Next
End With
Avatar billede Slettet bruger
26. januar 2007 - 08:26 #11
Er du sikker på, du bruger den rigtige listbox?

Der er 2 typer forms/controls i excel, som i nogen grad kan det samme - Den ene type kommer fra forms toolbaren og den anden fra controls toolbaren.

Jeg har uploaded et eksempel her, hvor det virker. http://www.mathiasbogsted.dk/listbox.xls

Hvis det ikke virker, må du skrive din excel version her.
Avatar billede humanoid Nybegynder
26. januar 2007 - 13:59 #12
Det var fra forms jeg valgte listboxen, så det var derfor.
Det virker nu....mange tak for hjælpen

smid lige et svar, så får du points
Avatar billede Slettet bruger
26. januar 2007 - 15:27 #13
Super.

Se evt. denne lille artikel, der meget kort forklarer forskellen, styrker og svagheder.
http://www.ozgrid.com/Excel/Excel-controls-forms-toolbox.htm

Kort fortalt er controls mere egnede til programmering, hvor forms egner sig bedst til alm. brug af excel - at microsoft ikke har kombineret deres funktionalitet, kan vel kun beskrives som pænt dumt.

/1
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