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