Здравствуйте многоуважаемые сетяне.
Сразу отмечу что в этом деле начинающий.
Вопрос такой...
Имеются две колонки,А1-А10 в каждой из которых записаны даные(пустых нет).А так-же В1-В10 с разными числами.
Например.
---А1---------В1
"вася"-------"1"
"петя"-------"4"
"федя"------"3"
"саша"------"1"
"маша"------"4"
"юра"-------"3"
Хотелось-бы в ячейке A11 иметь InCellDropDown с именами у которых значение в В1 равно 1 (вася,саша).
Combobox не подходит т.к. длина колонок может изменятся ,а в зависимости от этого и расположение InCellDropDown,а также критериев может быть два или более и тогда нужно больше ячеек с InCellDropDown.
Через Faind -> FaindNext могу найти нужные имена с подходящим критерием в колонне "В", но нехотелось бы это всё копировать в отдельную колонку а потом уже создавать InCellDropDown.
Заранее спасибо.
Нужна помощь с IncellDropDown
Модератор: Naeel Maqsudov
Подобный вопрос уже был, смотрите ...
как сделать выпадающий лист? forum/topic4678.html
выбор значения из открывающегося списка forum/topic4682.html
Повторюсь для вашего случая:
Пусть диапазон "mas_A" - исходный список, располагается A1:B10
а диапазон "mas_B" - список имен со значением 1, располагается в столбце D1: D....
Используйте стандатный механизм выбора значения из списка для ячейки
(меню Данные\Проверка\ ТипДанных:=<Список>\ Источник:= F3 - <Mas_B>).
Массив <Mas_B> получите из исходного диапазона, напрмер нажатием кнопки с кодом:
как сделать выпадающий лист? forum/topic4678.html
выбор значения из открывающегося списка forum/topic4682.html
Повторюсь для вашего случая:
Пусть диапазон "mas_A" - исходный список, располагается A1:B10
а диапазон "mas_B" - список имен со значением 1, располагается в столбце D1: D....
Используйте стандатный механизм выбора значения из списка для ячейки
(меню Данные\Проверка\ ТипДанных:=<Список>\ Источник:= F3 - <Mas_B>).
Массив <Mas_B> получите из исходного диапазона, напрмер нажатием кнопки с кодом:
Код: Выделить всё
Private Sub CommandButton1_Click()
p = 0
Range("D:D").ClearContents
For i = 1 To Range("mas_A").Rows.Count
If Range("mas_A").Cells(i, 2).Value = 1 Then
p = p + 1
Cells(p, 4) = Range("mas_A").Cells(i, 1).Value
End If
Next i
ActiveWorkbook.Names.Add Name:="mas_B", RefersToR1C1:=Range("D1", Cells(p, 4))
End Sub
Spasibo za otvet. No.......
1.Eti temy uje 4ital.
2. Через Faind -> FaindNext могу найти нужные имена с подходящим критерием в колонне "В", но нехотелось бы это всё копировать в отдельную колонку а потом уже создавать InCellDropDown
3.критериев может быть два или более и тогда нужно больше ячеек с InCellDropDown
4.длина колонок может изменятся ,а в зависимости от этого и расположение InCellDropDown
Net-li optsii dobavliat' v InCellDropDown kak iv ComboBox t.e. ADD ?
1.Eti temy uje 4ital.
2. Через Faind -> FaindNext могу найти нужные имена с подходящим критерием в колонне "В", но нехотелось бы это всё копировать в отдельную колонку а потом уже создавать InCellDropDown
3.критериев может быть два или более и тогда нужно больше ячеек с InCellDropDown
4.длина колонок может изменятся ,а в зависимости от этого и расположение InCellDropDown
Net-li optsii dobavliat' v InCellDropDown kak iv ComboBox t.e. ADD ?
Похоже вам необходимо следующее:
1. Программно определить длину колонок (например в первом случае 10) и диапазон, из которого формировать массив списка значений
2. Программно сформировать массив списка значений, по заданным критериям, не обязательно его ложить в ячейки
3. Программно определить расположение ячейки (конец колонок (10) + 1), для которой необходимо создать объект Validation.
4. Программно создать объект Validation в этой ячейке, при этом указать в качестве аргументов - сформированный массив списка значений в виде "вася;петя;миша".
Возможно лучше сделать сначала полуавтоматические кнопки панели управления для назначения определенным ячейкам списка по определенному критерию,
типа:
- встал на нужную ячейку, нажал кнопку "список по критерию 1", указал диапазон колонок и в этой ячейке появился требуемый список, встал на другую ячейку - нажал кнопку "список по критерию 2" и т.д.
Если есть четкая зависимость куда вставлять подобные ячейки и программно определять длину диапазона столбцов, тогда можно делать все разом, без "мастера".
1. Программно определить длину колонок (например в первом случае 10) и диапазон, из которого формировать массив списка значений
2. Программно сформировать массив списка значений, по заданным критериям, не обязательно его ложить в ячейки
3. Программно определить расположение ячейки (конец колонок (10) + 1), для которой необходимо создать объект Validation.
4. Программно создать объект Validation в этой ячейке, при этом указать в качестве аргументов - сформированный массив списка значений в виде "вася;петя;миша".
Возможно лучше сделать сначала полуавтоматические кнопки панели управления для назначения определенным ячейкам списка по определенному критерию,
типа:
- встал на нужную ячейку, нажал кнопку "список по критерию 1", указал диапазон колонок и в этой ячейке появился требуемый список, встал на другую ячейку - нажал кнопку "список по критерию 2" и т.д.
Если есть четкая зависимость куда вставлять подобные ячейки и программно определять длину диапазона столбцов, тогда можно делать все разом, без "мастера".