Może coś takiego :
Option Explicit
Public Sub WypelnijCombo()
Dim i As Integer
Worksheets("Arkusz2").cboTest.Clear
i = 1
Do While (Worksheets("dane").Cells(i, 1) <> "")
'działa dopóki nie napotka pustej komórki w kolumnie "A"
Worksheets("Arkusz2").cboTest.AddItem (Worksheets("dane").Cells(i, 1))'ładuje do cboTest zawartość komórek z pierwszej kolumny
i = i + 1
Loop
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
'aktualizacja zawartości cboTest przy zmianie zawartości arkusza
WypelnijCombo
End Sub
Private Sub cboTest_Change()
'aktualizacja komórek przy zmianie w cboTest
Worksheets("Arkusz2").Cells(1, 5).Value = cboTest.ListIndex
'lub jeżeli klucze byłyby w drugiej kolumnie arkusza "dane"
'Dim wiersz as Integer
'wiersz = cboTest.ListIndex
'Worksheets("Arkusz2").Cells(1, 5).Value = Worksheets("dane").Cells(wiersz,2).value
Worksheets("Arkusz2").Cells(2, 5).Value = cboTest.Value
End Sub
Private Sub Workbook_Activate()
'wypełnienie cboTest przy otwarciu arkusza
Arkusz2.WypelnijCombo
End Sub |