Возникла задача заполнения определенной ячейки цифрами, каждая из которых соответствует номеру какой-то задачи в списке: 1. Коррекция зрения 2. Стабилизация дыхания и т. д.
Я подумал, что самый простой (для пользования) вариант - это всплывающее окно с флажками. Поставил галочки на 1 и 4 Checkbox'е и в ячейке появилось 1,4. Можно ли это реализовать?
Если да, то задача усложняется. Потому что, заполнять надо не одну, а много ячеек. Эти ячейки описывают задачи разных людей, при этом у каждого свой список задач.
То есть, если ячейка соответствует Иванову, то во всплывающем окне одни Checkbox'ы, а если Петрову - другие. При этом я заранее не знаю кому эта ячейка будет соответствовать.
1. Не получается добавить список из ячеек расположенных в одной строке ('1'!$B$3:$F$3). Только если передаю ячейки из столбца ('1'!$B$3:$B$5) - все нормально... 2. В связанную ячейку передается 0, какой бы элемент я не выбрал. Если убираю мультивыбор - все нормально, но мне так не подходит.
1. Если нельзя использовать столбец (кто-то запретил?), то ListBox можно заполнить программно. 2. Не видно мне отсюда, почему ноль. В "Приемах", среди статей про выпадающие списки, есть нужный Вам вариант (вариант 3).
Юрий М, спасибо! Похоже вариант 3 - мой. Сейчас буду пробовать.
Цитата
Юрий М написал: Если нельзя использовать столбец (кто-то запретил?)
Никто не запрещал . Нужно использовать строку. Я пишу '1'!$B$3:$F$3, а отображается в списке только содержимое ячейки B3 (C3, D3, E3 и F3 не отображаются)
Раз никто не запрещал - найдите свободный столбец - сейчас их в свежих версиях предостаточно. Зачем сами себе создаёте проблемы? )) См. вариант с исходными данными в строке и ЛистБоксом. ЛистБокс можно (нужно) прятать, если активирована ячейка не в нужном столбце, и показывать, когда выбрали нужную. И позиционировать рядом с активной ячейкой. Подобные темы обсуждались.
Юрий М, я дико извиняюсь, но есть еще вопрос. Я пробую и Ваш пример и пример Варианта 3 из Вашей ссылки.
В Вашем примере добавляется номер элемента списка, тут все нормально, но у меня возникают другие проблемы... А в Варианте 3 добавляется значение из списка. Как мне здесь добавить номер? По аналогии с Вашим примером я должен создать цикл и пройтись по перечню элементов списка, найти его номер и вписать в ячейку. Но как обратиться к списку элементов, у списка же нет имени. Что надо вписать вместо слова ЧТО? Или надо совсем по-другому?
Код
Dim X As String ...For i = 0 To ЧТО.Count - 1 If .Selected(i) Then X = str (i) End IfNext
И к диапазону, из которого заполняются элементы списка я обратиться не умею. В строке Источник в окне Проверка данных (в оригинальном файле, не в моем примере) я пишу =ИНДЕКС(ДИАП_1;ПОИСКПОЗ(G4;ДИАП_2;0);0), а потом растягиваю эту ячейку на 150 ячеек вниз. Таким образом это G4 в каждой следующей ячейке превращается в G5, G6 и т. д. Как это сделать в макросе я, к сожалению, не знаю.
У меня была применена конструкция With - End with. Применительно к КомбоБоксу. Т.е. номера строк массива, которым заполнен КомбоБокс. Кто мешает Вам дать имя списку (диапазону)? Не хотите имя - указывайте конкретный диапазон и перебирайте его ячейки. Только отсчёт уже будет не с нуля. И определитесь уже, по какому варианту собираетесь работать )
Юрий М, я пока остановился на Варианте 3. Но я не могу дать имя списку он же в каждой ячейке разный.
Посмотрите пожалуйста вложенный файл - это оригинальный файл - я просто удалил все не имеющее отношения к вопросу. Лист Verlauf колонка B - это имена, a колонка D - это списки. Макрос добавляет элементы списков, а мне нужны их порядковые номера (элементы списков перечислены на листе Stammdaten (Диапазон KundenZiele). Они разные для каждого клиента)
И ещё одна "непонятка": выпадающие списки в столбце D, а в макросе контролируете только две ячейки - J4 и J5. Это как понимать? Посмотрите вариант - так хотели?
Юрий М написал: И ещё одна "непонятка": выпадающие списки в столбце D, а в макросе контролируете только две ячейки - J4 и J5
Да, Вы правы. У меня изначально рабочей была колонка J. Для пробы я взял только две ячейки J4 и J5. И все добавлялось. А потом я начал удалять не имеющие отношения к теме столбцы... А в макросе не подправил.