БМВ, видимо, мои объяснятельные способности совсем никуда не годятся. Попробую на полуживом примере, нацарапанном на коленке.
Дано:
1 - на листе 1 динамическая таблица "Детали" с какими-то значениями, среди которых интересующие меня в данном случае: материал, цвет и толщина.
2 - На листе 2 несколько таблиц с именами материалов и таблица со списком этих материалов. В таблицах материалов есть какие-то параметры, которые подгружаются в таблицу "детали", в том числе и интересующие нас цвет и толщины (все допустимые для данного цвета значения в одной ячейке через запятую, например)
Как я себе представляю процесс:
1 - Выбираем материал
2 - Список "Цвет" подгружает допустимые значения из колонки "Цвет" таблицы материала.
3 - Выбираем цвет
4 - Список "Толщина" подгружает допустимые значения из ячейки, соответствующей значению "Цвет" из таблицы материала, представляя её не в виде одного стрингового значения, а в виде нескольких значений.
5 - Выбираем толщину из допустимых для данного цвета и материала.
6 - Радуемся.
Каковы нюансы:
1 - Таблица "Материалы" - пополняемая. Т.е. она рассчитана на то что ниже будут дописываться строки с соответствующим автоматическим расширением, как это свойственно умным таблицам.
2 - Таблицы материалов имеют свойство расширяться, обновляться и появляться новые.
3 - Всё это происходит в результате действия пользователя, не разбирающегося в экселе, а сталбыть, не способного запустить нужный макрос.
4 - Многое завязано на ДВССЫЛ
Таким образом прихожу к выводу, что процесс необходимо максимально автоматизировать. И лично я, как пользователь хоть и знакомый с экселем довольно плотно, но не считающий себя его гуру, а ВБА вообще слегка побаивающийся, предпочёл бы иметь формулу, которую можно просто воткнуть в поле источника для списка, нежели связываться с автоматизацией посредством событий листа. Тем более что эта формула могла бы пригодиться в других местах.
Если в таком варианте такое неосуществимо, то, возможен другой (файл "пример 2"):
Дано:
1 - на листе 1 динамическая таблица "Детали" с какими-то значениями, среди которых интересующие меня в данном случае: материал, цвет и толщина.
2 - На листе 2 несколько таблиц с именами материалов и таблица со списком этих материалов. В таблицах материалов есть какие-то параметры, которые подгружаются в таблицу "детали", в том числе и интересующие нас цвет, толщины, перечисленные в шапке, и значения цен для каждой из этих толщин. Некоторые значения цен - пустые, это значит, что цвета в этой толщине нет.
Как я себе представляю процесс:
1 - Выбираем материал
2 - Список "Цвет" подгружает допустимые значения из колонки "Цвет" таблицы материала.
3 - Выбираем цвет
4 - Список "Толщина" подгружает допустимые значения из шапки таблицы материала, руководствуясь наличием ненулевого значения цены на пересечении толщины и цвета. Соответственно, если цена нулевая, то значение в выпадающий список не идёт.
5 - Выбираем толщину из допустимых для данного цвета и материала.
6 - Радуемся.
Нюансы:
1 - Таблица "Материалы" - пополняемая. Т.е. она рассчитана на то что ниже будут дописываться строки с соответствующим автоматическим расширением, как это свойственно умным таблицам.
2 - Таблицы материалов имеют свойство расширяться, обновляться и появляться новые.
3 - Всё это происходит в результате действия пользователя, не разбирающегося в экселе, а сталбыть, не способного запустить нужный макрос.
4 - Многое завязано на ДВССЫЛ
5 - Для всех материалов в шапке зарезервировано 5 столбцов для толщин, но не все они заполнены какой-то толщиной.
Как я пытался реализовать:
Помимо очевидных попыток просто зафигачить в ячейку значения через запятую, я пытался сделать формулу массива, которая делает split значению в ячейке-аргументе1 с разделителем в виде аргумента2. Функция работала (т.е. я получал одномерный массив значений как если бы работал с диапазоном), но выпадающий список её жрать почему-то отказался, говоря мне что аргумент должен быть списком значений через разделитель или ссылкой на диапазон.
Читаю я всё это перед отправкой и понимаю, что второй вариант был бы даже более предпочтителен в перспективе. И, да, простите за многобукаф. Я не очень умею в объяснять(