Как управлять выпадающим списком в ячейке Excel -длина строк

Программирование на Visual Basic for Applications
theatrped
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 11.01.2008 (Пт) 17:32
Откуда: Россия

Как управлять выпадающим списком в ячейке Excel -длина строк

Сообщение theatrped » 18.01.2008 (Пт) 17:17

Вопрос.
Попытался с помощью записанного макроса создать выпадающий список в ячейке Excel. Получается, но не полностью. Обрубается, по видимому, после 250 символов. Связано с длинной строки в 255 символов?
А как сделать, чтобы можно было без проблем закладывать в список сколько угодно строк и символов? (общий алгоритм создания списка для пользователя через макрос: создается столбец ячеек с текстами или цифрами -> содержимое ячеек объединяется в одну строковую переменную через запятую -> с помощью Add Type:=xlValidateList и Formula1 создается список).
Вопрос 2: Как добавлять и удалять (одним словом- управлять) записями в этом выпадающем (уже созданном) списке?
Заранее - спасибе.
Во всем до самой сути...

Igor_123
Осторожный Баянист
Осторожный Баянист
Аватара пользователя
 
Сообщения: 1325
Зарегистрирован: 21.07.2004 (Ср) 13:00
Откуда: Днепропетровск

Сообщение Igor_123 » 18.01.2008 (Пт) 19:42

не совсем понял, что тебе нужно. Если валидация, то почитай в справке о ней
Водки я вам не обещаю, но погуляем хорошо.
И. Сусанин.

Аватара (с) Тёмыч

alex_gearbox
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 09.01.2008 (Ср) 21:34
Откуда: г. Волгоград

Сообщение alex_gearbox » 18.01.2008 (Пт) 19:55

Вариант ответа на вопрос 1.
1. Вынести список на отдельный лист;
2. Присвоить диапазону со списком имя (Вставка - Имя - Присвоить);
3. Напротив каждого значения поставить идентификатор, который в будущем будет отвечать за "видимость" значения в выпадающем списке. Идентификатор (например): 0 - не в списке, 1 - в списке;
* Получили таблицу со столбцами "Название" и "Идентификатор" (к примеру).

Вариант ответа на вопрос 2.
4. Написать макрос, который будет переопределять диапазон имени;
5. Ручками (т.е. с клавиатуры) правим значение в столбце "Идентификатор", а чтобы нельзя было ввести значение, отличное от "0" или "1": Данные - Проверка вводимых значений;
6. Запускаем макрос.
* Готово.

Что делает макрос?
1. Сортируем таблицу по столбцу "Идентификатор";
2. Фильтруем по значению идентификатора "1";
3. Выделяем видимые (!) строки в столбце "Название";
4. Диапазону видимых ячеек столбца "Наименование" присваиваем имя списка (т.е. переприсваиваем);
5. Снимаем фильтр.

theatrped
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 11.01.2008 (Пт) 17:32
Откуда: Россия

Спасибо за ответ. Но все-таки

Сообщение theatrped » 18.01.2008 (Пт) 21:36

Спасибо за ответ.
Но все-таки - есть ли способ создать выпадающий список без использования постоянно существующего ссылочного столбца с записями списка?
Хотя Ваш - вариант, конечно. Только не вижу большого отличия от обычного (вручную) создания выпадающего списка через "Данные-Проверка-Список".
К-стати, попробовал "удлиннить" строку с записями списка при объявлении переменной до 400 сммволов ( Dim sList as String*400)- VBA заругался. Жаль. Этот вариант мне больше нравился - самостоятельные ячейки.
Во всем до самой сути...

alex_gearbox
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 09.01.2008 (Ср) 21:34
Откуда: г. Волгоград

Сообщение alex_gearbox » 19.01.2008 (Сб) 23:25

Причина, по которой нежелательно иметь ссылочный столбец? Ведь его можно разместить на другом листе, а лист скрыть.

...Только не вижу большого отличия...


Разве не этого хотели?
...добавлять и удалять (одним словом- управлять)...

theatrped
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 11.01.2008 (Пт) 17:32
Откуда: Россия

Скрыть лист с записями для выпадающего списка

Сообщение theatrped » 20.01.2008 (Вс) 2:20

Скрыть лист с записями для списка можно. Но с записями будут работать "толстые тетки" в учреждении, которые в Excel иногда создать еще один лист не умеют и учится особого горения не имеют. И если их еще нагрузить скрытием листов - они вообще взопреют. А вот если бы были кнопки: создать списко, изменить список. Это было бы гораздо проще. Как в VB6.
"Тонким" теткам я показал обычный ручной путь - и это их устроило. Но... Снова упираюсь в не универсальность и не самостоятельность этих списков. Как подумаю, что этот файл будут заполнять сотрудники в районном центре - представляю их страх и растерянность перед всем новым.
Впрочем, конечно, может я и усложняю. Но уж такая у меня максималистская тенденция: я сейчас почти ничего без макросов стараюсь не делать. Хотя бы в виде самотренировки.
Еще раз спасибо за внимание к вопросу.
Во всем до самой сути...

alex_gearbox
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 09.01.2008 (Ср) 21:34
Откуда: г. Волгоград

Сообщение alex_gearbox » 20.01.2008 (Вс) 15:44

"Универсальность" и "самостоятельность" спискам даёт программист (ИМХО).
Редактировать данные с помощью диалогового окна (UserForm или DialogSheets) ...или искать готовые инструменты.

theatrped
Начинающий
Начинающий
 
Сообщения: 14
Зарегистрирован: 11.01.2008 (Пт) 17:32
Откуда: Россия

Сообщение theatrped » 20.01.2008 (Вс) 17:24

alex_gearbox писал(а):"Универсальность" и "самостоятельность" спискам даёт программист (ИМХО).
Редактировать данные с помощью диалогового окна (UserForm или DialogSheets) ...или искать готовые инструменты.

Согласен.
"Нет" - так "нет". Будет думать.
Во всем до самой сути...


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 71

    TopList