Avatar billede sbuss Nybegynder
30. juli 2015 - 18:01 Der er 1 løsning

VBA Userforms - Vis liste

Hej,

Jeg er ude efter at at vise og redigere indholdet af en kolonne i en listbox. Kolonnen der skal vises i listbox'en er dynamisk og afhængig af en combobox.

Derfor:

I Sheet1 har jeg i første række overskrifter som vises i ComboBox1.
A1 = Overskrift1
B1 = Overskrift2
C1 = Overskrift3
...osv. Disse er mit opslag i ComboBox1.

Nedenfor hver overskrift har jeg flere rækker data som kan variere i antal.

F.eks:
B1 = Overskrift2
B2 = Data
B3 = Data
B4 = Data
... osv

Når jeg i ComboBox1 vælger f.eks. Tekst2, vil jeg have ListBox1 til at vise indholdet i denne kolonne, altså B2:B100 (eller "uendeligt"). Min ComBobox skal derfor være bestemmende for hvilken kolonne i arket der skal vises i listboxen.

Dernæst vil jeg kunne redigere i det viste indhold og overskrive data i den valgte kolonne vha. CommandButton1.

Håber det giver mening, og håber meget at nogen kan hjælpe.

Mvh
Simon
Avatar billede supertekst Ekspert
31. juli 2015 - 14:41 #1
Rem Anbringes under relevante ark.
Rem Hvis du vil have hele filen - så send en mail. @-adresse under min profil

Dim cc As Object, sidsteKol As Integer, sidsteRække As Integer
Dim kol As Integer, ræk As Integer
Private Sub ComboBox1_Change()
    kol = Me.ComboBox1.ListIndex + 1
    Me.ListBox1.Clear
    Me.TextBox1 = ""
   
    For Each cc In Range(Cells(2, kol), Cells(sidsteRække, kol)).Cells
        If cc <> "" Then
            Me.ListBox1.AddItem cc
        Else
            Exit For
        End If
    Next cc
End Sub
Private Sub CommandButton1_Click()          'overskriv
    Cells(ræk, kol) = Me.TextBox1
End Sub
Private Sub ListBox1_Click()
    ræk = Me.ListBox1.ListIndex + 2
    Me.TextBox1 = Cells(ræk, kol)
End Sub
Private Sub UserForm_activate()
    sidsteRække = ActiveCell.SpecialCells(xlLastCell).Row
    sidsteKol = ActiveCell.SpecialCells(xlLastCell).Column
   
    For Each cc In Range(Cells(1, 1), Cells(1, sidsteKol)).Cells
        If cc <> "" Then
            Me.ComboBox1.AddItem cc
        Else
            Exit For
        End If
    Next cc
   
    Me.ComboBox1.DropDown
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
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