Dadurch wird die ActiveX-ComboBox mit allen Werten zwischen Sheet2! D2 und Sheet2! D3 aufgefüllt:
Sub PopulateComboBox() Dim l As Long Dim cb As ComboBox On Error GoTo Terminate Set cb = Sheet1.ComboBox1 cb.Clear With Sheet2 For l = .Range("D2").Value To .Range("D3").Value cb.AddItem l Next l End With Terminate: If Err Then Debug.Print "Error", Err.Number, Err.Description Err.Clear End If End Sub
Um es auszuführen, wenn die Arbeitsmappe geöffnet wird, fügen Sie dies in das Arbeitsbuchmodul ein:
Private Sub Workbook_Open() Call PopulateComboBox End Sub
Möglicherweise möchten Sie dies auch in das Sheet2-Arbeitsblattmodul einfügen, damit die ComboBox-Werte aktualisiert werden, wenn sich die Werte in D2 oder D3 ändern:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("D2:D3")) Is Nothing Then Call PopulateComboBox End Sub