Дожал монстрика для работы с выпадающим списком.
Его возможности:
1. Список может быть расположен в любом месте любого (в т.ч скрытого, но не защищенного) листа книги.
2. Возможность добавления значений в список из ячейки.
3. Список может иметь до 40 присоединенных столбцов, ввод данных в которые осуществляется из динамически изменяющейся формы (при открытии размер определяется количеством используемых полей и размером надписей, при вводе значений - шириной текста). Ширина столбца формы определяется самым широким значением в столбце.
4. При добавлении нового значения список автоматически сортируется по возрастанию.
5. Проверка целостности и автоматическое восстановление (создание) динамического диапазона на листе книги.
6. Проверка списка на наличие пустых ячеек и их удаление .
7. Возможность быстрого перехода по списку введением первых букв в заданную ячейку.
8. Возможность вывода значений присоединенных столбцов на лист со списком.
9. Выбор варианта вывода - в столбец или в строку (по умолчанию начиная с соседней ячейки).
10. Минимум изменений в тексте кода для привязки к любому проекту - изменения необходимо сделать в только в разделах ИСХОДНЫЕ ДАННЫЕ листа со списком и общего модуля (адрес ячейки с выпадающим списком, адрес ячейки для ввода первых букв списка, формула динамического диапазона {при работе с русифицированным EXCEL ОБЯЗАТЕЛЬНО ТРЕБУЕТСЯ и русская и английская формула}, имя списка, начальная ячейка списка, количество столбцов списка, нужен ли вывод присоединенных столбцов и в каком виде).
Монстрик создан на основе идей, пожеланий и советов форума с целью попрактиковаться в VBA EXCEL (ибо то, с чего все началось в локальном варианте давно сделано).
Может кому и пригодится.
Выражаю благодарность всем, чьи советы помогли в написании монстрика и прошу по возможности прокомментировать неправильные или неудачные решения.
В частонсти, меня интересует ваше мнение, стоило ли городить
{Private Sub Formul_Range()} в этом виде, или ограничиться строкой {ActiveWorkbook.Names.Add Name:="mySpis", RefersTo:=FRmySpis}
Тогда, как минимум, можно удалить одну формулу из исходных данных.
Его возможности:
1. Список может быть расположен в любом месте любого (в т.ч скрытого, но не защищенного) листа книги.
2. Возможность добавления значений в список из ячейки.
3. Список может иметь до 40 присоединенных столбцов, ввод данных в которые осуществляется из динамически изменяющейся формы (при открытии размер определяется количеством используемых полей и размером надписей, при вводе значений - шириной текста). Ширина столбца формы определяется самым широким значением в столбце.
4. При добавлении нового значения список автоматически сортируется по возрастанию.
5. Проверка целостности и автоматическое восстановление (создание) динамического диапазона на листе книги.
6. Проверка списка на наличие пустых ячеек и их удаление .
7. Возможность быстрого перехода по списку введением первых букв в заданную ячейку.
8. Возможность вывода значений присоединенных столбцов на лист со списком.
9. Выбор варианта вывода - в столбец или в строку (по умолчанию начиная с соседней ячейки).
10. Минимум изменений в тексте кода для привязки к любому проекту - изменения необходимо сделать в только в разделах ИСХОДНЫЕ ДАННЫЕ листа со списком и общего модуля (адрес ячейки с выпадающим списком, адрес ячейки для ввода первых букв списка, формула динамического диапазона {при работе с русифицированным EXCEL ОБЯЗАТЕЛЬНО ТРЕБУЕТСЯ и русская и английская формула}, имя списка, начальная ячейка списка, количество столбцов списка, нужен ли вывод присоединенных столбцов и в каком виде).
Монстрик создан на основе идей, пожеланий и советов форума с целью попрактиковаться в VBA EXCEL (ибо то, с чего все началось в локальном варианте давно сделано).
Может кому и пригодится.
Выражаю благодарность всем, чьи советы помогли в написании монстрика и прошу по возможности прокомментировать неправильные или неудачные решения.
В частонсти, меня интересует ваше мнение, стоило ли городить
{Private Sub Formul_Range()} в этом виде, или ограничиться строкой {ActiveWorkbook.Names.Add Name:="mySpis", RefersTo:=FRmySpis}
Тогда, как минимум, можно удалить одну формулу из исходных данных.