Avatar billede mini-me Nybegynder
20. marts 2006 - 12:08 Der er 12 kommentarer og
1 løsning

Alle items i listbox

Hej,

Jeg har 2 listbokse som eks. ser sådan her ud:

listboks1:
Mandag
Tirsdag
Onsdag

Listboks2:
Tirsdag
Onsdag
Mandag

Det jeg ønsker er at jeg kan flytte rundt på felterne som jeg vil, enten ved brug af musen eller et sæt knapper.

Når jeg er færdig med at sortere vil jeg kunne klikke på godkend.

så skal den fortælle mig felterne hvordan felterne i tekstboks1 står og tekstenre i tekstboks2
Avatar billede mini-me Nybegynder
20. marts 2006 - 15:27 #1
Nogen der kan hjælpe?
Avatar billede supertekst Ekspert
21. marts 2006 - 09:12 #2
Ja - men nærmere forklaring er måske nødvendig? - Er det du ønsker, at kunne flytte den enkelte ugedag i forhold til de øvrige dage indenfor den enkelte listeboks ved hjælp af en Op/Ned knap?

Sortering?
Avatar billede mini-me Nybegynder
21. marts 2006 - 09:22 #3
Ja, sortering, og bagefter vil jeg kunne udskrive den orden de står i.
Avatar billede supertekst Ekspert
21. marts 2006 - 09:32 #4
Altså knapper til flyt - skal det gælde begge listebokse?

Udskrive - hvad/hvor?
Avatar billede mini-me Nybegynder
21. marts 2006 - 09:36 #5
Ja knapper til at flytte op, ned og så udskrive hvordan de er blevet sorteret eks:

er de blevet sorteret:
mandag
tirsdsag
Fredag
Onsdag


så vil jeg have en msgbox som prompter rækkefølgen, mandag, tirsdag, fredag onsdag
Avatar billede supertekst Ekspert
21. marts 2006 - 09:56 #6
OK - vender tilbage senere i dag med lidt VBA-kode
Avatar billede supertekst Ekspert
21. marts 2006 - 14:24 #7
Formularen har
2 listbox (1/2)
1 SpinButton (1)
1 CommandButton (1)


Koden i formularen er følgende:
Dim lb1 As Variant, lb2 As Variant, lbNr As Byte, ix, lb As Byte
Const max = 7                              'antal elementer i LB - tilpasses
Private Sub CommandButton1_Click()
Dim resultat, f
    ListBox1.ListIndex = -1
    ListBox2.ListIndex = -1
   
    resultat = "Listbox1:" + vbCr
    For f = 0 To ListBox1.ListCount - 1
        resultat = resultat + ListBox1.List(f) + vbCr
    Next f
   
    resultat = resultat + vbCr + "Listbox2:" + vbCr
    For f = 0 To ListBox2.ListCount - 1
        resultat = resultat + ListBox2.List(f) + vbCr
    Next f
   
    MsgBox (resultat)
End Sub
Private Sub ListBox1_Click()
    ListBox2.ListIndex = -1
   
    SpinButton1.Enabled = True
    lbNr = 1
    SpinButton1.Enabled = True
   
    ix = ListBox1.ListIndex
End Sub
Private Sub listbox2_Click()
    ListBox1.ListIndex = -1
   
    SpinButton1.Enabled = True
    lbNr = 2
    ix = ListBox2.ListIndex
    SpinButton1.Enabled = True
End Sub
Private Sub SpinButton1_spinUp()
Dim tekst As String, modi
    If lbNr = 1 Then
        rykOp Me.ListBox1
    Else
        rykOp Me.ListBox2
    End If
End Sub
Private Sub rykOp(liste As Control)
    If ix - 1 < 0 Then
      tekst = liste
      liste.RemoveItem ix
      liste.AddItem tekst
      liste.ListIndex = liste.ListCount - 1
    Else
      tekst = liste
     
      If ix <> liste.ListCount - 1 Then
            modi = 1
      Else
            modi = 0
      End If
       
      liste.RemoveItem ix
      liste.AddItem tekst, ix - modi
      liste.ListIndex = ix - modi
    End If
End Sub
Private Sub SpinButton1_spindown()
    If lbNr = 1 Then
        rykNed Me.ListBox1
    Else
        rykNed Me.ListBox2
    End If
End Sub
Private Sub rykNed(liste As Control)
    If ix + 1 > liste.ListCount - 1 Then
      tekst = liste
      liste.RemoveItem ix
        ix = 0
      liste.AddItem tekst, 0
      liste.ListIndex = ix
    Else
      tekst = liste
     
      If ix <> liste.ListCount - 1 Then
            modi = 1
      Else
            modi = 0
      End If
       
      liste.RemoveItem ix
      liste.AddItem tekst, ix + modi
      liste.ListIndex = ix + modi
    End If
End Sub
Private Sub UserForm_activate()
    lb1 = Array("Mandag", "Tirsdag", "Onsdag", "Torsdag", "Fredag", "Lørdag", "Søndag")
    lb2 = Array("Anders", "Peter", "Hanne", "Mette", "Søren", "Lotte", "Sofie", "Pernille")

    lb = 0
     
    dataTillistBoxe
    SpinButton1.Enabled = False
End Sub
Private Sub dataTillistBoxe()
Dim f
    For f = 0 To 6
        ListBox1.AddItem lb1(f)
        ListBox2.AddItem lb2(f)
    Next f
End Sub
Avatar billede mini-me Nybegynder
21. marts 2006 - 14:26 #8
og hvis jeg har dynamiske antal items i min listbox, jeg henter data fra en acess database.
Avatar billede supertekst Ekspert
21. marts 2006 - 14:34 #9
Så må du jo have et mål for antallet af items - d.v.s styringen af dataTillistBoxe skal ændres.
Avatar billede mini-me Nybegynder
21. marts 2006 - 14:38 #10
;-)

Jeg ser lige på det om nogle timer og vender så tilbage,

men foreløbig tak
Avatar billede supertekst Ekspert
21. marts 2006 - 14:43 #11
Selv tak
Avatar billede mini-me Nybegynder
24. marts 2006 - 13:24 #12
Hvor finder jeg spin-button??
Avatar billede supertekst Ekspert
24. marts 2006 - 16:36 #13
I tools-box i VBA - knappen med 2 pile - aflæs navn ved at pege på knappen.

Ellers er du velkommen til at få userformen tilsendt - mail: pb@supertekst-it.dk
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