ПХЯ У10 10 Автоматическое расширение элементов раскрывающегося списка
пХЯ. У10.10. Автоматическое расширение элементов раскрывающегося списка
Предусмотреть в приложении средства поиска товара. При продаже товара записывать информацию о проданном товаре в базу данных, хранящуюся на рабочем листе продано. При списании товара записывать информацию о нем в базу данных, хранящуюся на рабочем листе Списание. Обеспечить программную фильтрацию, сортировку данных и построение обобщающих сводных таблиц как по проданным, так и по списанным и находящимся еще на складе товарам.
Следующая процедура является примером того, как можно автоматически добавлять в раскрывающийся список новые элементы. В диапазон A1:А2 рабочего листа, на основе которого строится раскрывающийся список, введем кг и штук (Рисунок У10.10). При вводе в поле раскрывающегося списка нового элемента, отличного от предыдущих, и нажатии кнопки CommandButton1, этот элемент программно вводится в ячейку АЗ. Теперь раскрывающийся список автоматически будет строиться по диапазону A1 : АЗ и т. д.
Private Sub CommandButtonl_Click()
Dim Диапазон As String
'
' Диапазон, на основе которого строится поле со списком
'
Dim n, i As Integer
'
' n - число элементов в диапазоне
'
Dim Новый As String
'
' Новый - .элемент, вводимый в поле со списком
n = Application.CountAfRange("A:A"))
Новый = ComboBoxl.Text
'
' Проверка, совпадает ли элемент, вводимый в поле со списком,
' с каким-либо элементом списка. Если не совпадает, то
' он добавляется в конец диапазона, по которому строится список
'
If ComboBoxl.MatchFound = False Then
Cells(n + 1, .1).Value = Новый
Диапазон = "A1:A" & CStr(n + 1)
ComboBox1.RowSource = Диапазон
End If
End Sub
'
Private Sub UserForm_Initialize()
Dim Диапазон As String
Dim n As Integer
n = Application.CountA(Range("A:A"))
Диапазон = "A1:A" & CStr(n)
ComboBoxl.RowSource = Диапазон
UserForml.Show
End Sub