Страницы: 1
RSS
Выпадающий список с присоединенными столбцами и динамической формой
 
Дожал монстрика для работы с выпадающим списком.  
 
Его возможности:  
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}  
Тогда, как минимум, можно удалить одну формулу из исходных данных.
 
{quote}{login=RAN}{date=31.10.2010 08:50}{thema=Выпадающий список с присоединенными столбцами и динамической формой}{post}  
 
Может кому и пригодится.  
 
{/post}{/quote}  
 
Очень даже пригодится! Большое Вам Спасибо за "попрактиковаться", за проделанную работу.
 
Интересно, и, вполне возможно, скоро пригодится.
 
RAN, у Вас в "монстрике" в ячейке D1 - первые буквы списка, в D2 - выпадающий список.  
А можно ли вставить цикл (а если можно, то в каком месте кода), что-бы первые буквы списка были в ячейках С1, С2, С3 ... , а выпадающий список в D1, D2, D3..?
 
Например так  
 
Private Sub myFirstSet()    
R = ActiveCell.Row  
Set myCell = Range("D" & R)        'Определяем ячейку с выпадающим списком  
Set myFirstCell = Range("C" & R)    'Определяем ячейку для ввода первых букв списка  
 
В столбце D условие проверки распространить на нужное число строк.  
 
Работает только при преходе по строке (стрелки < > )
Страницы: 1
Читают тему
Наверх