кнопки с выпадающими списками в Excel

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Alfa7
Сообщения: 4
Зарегистрирован: 22 май 2007, 09:40

Как создать в Excel для некоторых ячеек кнопки с выпадающими при нажатии списками, чтобы можно было выбрать НЕ ТОЛЬКО ОДИН, а НЕСКОЛЬКО элементов из списка, чтобы они зафиксировались в этой ячейке?
Можно ли сами списки создавать и хранить на ДРУГИХ ЛИСТАХ?
Pavel55
Сообщения: 418
Зарегистрирован: 20 окт 2006, 11:40
Откуда: Moscow

можно выделить нужные ячейки, а затем меню данные - проверка.... там тип данных выбрать Список и в строке "Источник" ввести нужные данные (числа) через запятую, например, так: 1;2;3;4;5 и если будет стоять галочка "список допустимых значений", то другое число человек уже не введёт в ячейку. А если хранить такой список на других листах, то этому списку значений надо присвоить имя, например, МойСписок, и в Данные - Провека - Список - Источник написать =МойСписок

Ещё можно почитать вот тут http://www.planetaexcel.ru/tip.php?aid= ... 47c590cd1c

P.S. в английском офисе меню Data - Validation...
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

НЕ ТОЛЬКО ОДИН, а НЕСКОЛЬКО элементов из списка, чтобы они зафиксировались в этой ячейке?
Вижу вариант - открывать форму на которой будет объект ListView,
список значений ListView может брать с именованного диапазона, который в свою очередь может ссылаться на диапазон любого листа.

по окончании выбора, форма закрывается - выбранные значения записываются в ячейку (через разделитель что-ли?)
Alfa7
Сообщения: 4
Зарегистрирован: 22 май 2007, 09:40

Спасибо Вам, Pavel. Буду еще обращаться
Alfa7
Сообщения: 4
Зарегистрирован: 22 май 2007, 09:40

Avsha писал(а):Вижу вариант - открывать форму на которой будет объект ListView,
список значений ListView может брать с именованного диапазона, который в свою очередь может ссылаться на диапазон любого листа.

по окончании выбора, форма закрывается - выбранные значения записываются в ячейку (через разделитель что-ли?)
Не знаю: "объект ListView", "с именованного диапазона"...Поэтому не понимаю, увы :(
Нужно, чтобы в некоторых случаях в ячейку из выпадающего списка названий учебников можно было выбрать НЕ ТОЛЬКО ОДИН учебник, но и, например, ДВА или ТРИ (пусть в результате они в ячейке будут представлены хоть через запятую, хоть в столбик)
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

можно попробовать вариант попроще,
но все же с программированием формы на Vba..
Вложения
Select_1_2_3.zip
(18.86 КБ) 122 скачивания
Alfa7
Сообщения: 4
Зарегистрирован: 22 май 2007, 09:40

Avsha, спасибо Вам. Я посмотрел Ваш "Select_1_2_3.zip". Научился создавать именованный список и ячейку с выпадающим списком учебников. Но из этого выпадающего списка я, к сожалению, имею возможность выбрать ЛИШЬ ОДИН учебник. Видимо, я не все понял в "Select_1_2_3.zip".
Задача у меня такая: имея два списка ("Фамилии учеников" и "Наименования учебников"), выбирать для каждого из учеников РАЗНОЕ количество учебников из списка (кому-то - ОДНУ только геометрию, а кому-то - и геометрию, и алгебру, и химию, т.е ОДНОВРЕМЕННО ТРИ учебника (может быть, удерживая на клавиатуре "Ctrl" или как-то иначе).
Еще более облегчило бы мне жизнь, если бы было возможно еще группировать, например, ОДНОВРЕМЕННО ЧЕТЫРЕХ учеников и для этой четверки выбирать ОДНОВРЕМЕННО ШЕСТЬ учебников, а для другой группы, например, ОДНОВРЕМЕННО ПЯТЕРЫХ учеников учеников, например, ОДНОВРЕМЕННО ДВА учебника.
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

Но из этого выпадающего списка я, к сожалению, имею возможность выбрать ЛИШЬ ОДИН учебник. Видимо, я не все понял в "Select_1_2_3.zip".
В этом примере можно выбрать несколько учебников с помощью формы VBA, но результат этого выбора попадает только в одну ячейку, с адресом "С3" в данном случае.

Вижу следующий вариант реализации вашей задачи:

1. Сначала выделить несколько ячеек для определенных учеников (удерживая Ctrl или Shift)
2. затем вызвать по кнопке форму VBA с выбором учебников (кстати вы ее нашли в примере??? - необходимо разрешить выполнение макросов при запуске книги)
3. выбрать необходмые учебники и
4. записать выбранные учебники во все выделенные ячейки на этапе 1.

Можно несколько усложнить макрос, чтобы полученные выбранные учебники записывались не только в C3, а во все ячейки, выделенные на этапе 1.
ashaya
Сообщения: 2
Зарегистрирован: 29 янв 2013, 14:48

Добрый день!
Подскажите, пожалуйста, возможно ли в UserForm обозначить выбор именованного диапазона, скажем, в зависимости от значения в соседней ячейке?
Например, если значение "АБВ" то Set r1 = Range("АБВ")
если значение "ВСД" то Set r1 = Range("ВСД")
Avsha
Сообщения: 665
Зарегистрирован: 08 сен 2005, 13:47
Откуда: KZ

думаю да, такой код работает

Код: Выделить всё

Dim r1 As Range

dfg = "АБВ"
Set r1 = Range(dfg)
Ответить