Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' формирование списка в КомбоБокс
Const C1 As Long = 1, C2 As Long = 1, R1 As Long = 1, R2 As Long = 500 ' границы зоны чувствительности для обновления списка
Const Cs As Long = 1, Rs As Long = 2 ' начальная ячейка столбца списка
Const MaxEmpty As Long = 3 ' количество пустых строк в списке - признак его конца
Dim KolEmpty As Long ' счетчик пустых строк
Dim i As Long, r As Long ' счетчики
Dim TekValue As Variant
Dim FndDubl As Boolean
If Target.Column >= C1 And Target.Column <= C2 And Target.Row >= R1 And Target.Row <= R2 Then
KolEmpty = 0: r = 0
ComboBox1.Clear
While KolEmpty < MaxEmpty
TekValue = Cells(Rs + r, Cs).Value
If Not IsEmpty(TekValue) Then
KolEmpty = 0
' проверка повторов
FndDubl = False
For i = 0 To ComboBox1.ListCount - 1
If TekValue = ComboBox1.List(i) Then
FndDubl = True
Exit For
End If
Next i
'
If Not FndDubl Then
ComboBox1.AddItem TekValue ' добавляем элемент в КомбоБокс
Cells(Rs + r, Cs).Interior.ColorIndex = 0 ' сбрасываем выделение цветом в списке
Else
Cells(Rs + r, Cs).Interior.ColorIndex = 6 ' выделяем цветом пвторы в списке
End If
Else
KolEmpty = KolEmpty + 1
End If
r = r + 1
Wend
If ComboBox1.ListCount > 0 Then
ComboBox1.Value = ComboBox1.List(0)
End If
End If
End Sub
Private Sub ComboBox1_Change()
Cells(1, 2).Value = ComboBox1.Value
End Sub
Столбец и занесение данных в список
В Книге Excel существует столбец в который заносятся текстовые значения, надо чтобы при добавление эти значения загрузить в Combobox и при последующем вводе сделать так чтобы значения тоже загружались в этот список ( с сохранением и без повторов)
Зарание спасибо.
' например так: