|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
10.03.2007, 14:24 | #1 |
Пользователь
Регистрация: 25.11.2006
Сообщений: 46
|
Ширина выпадающего списка
Добрый день! Проблема следущая: как сделать, чтобы выпадающий список был по ширине, как самая длинная запись в нем, а не по ширине ячейки, с которой он выпадает?
Тобишь есть список, к примеру, с такими данными: Шевченковский р-н, Поликлиника №1; Шевченковский р-н, Поликлиника №2; Шевченковский р-н, Поликлиника Центральная;. В выпадающем списке видно только: "Шевченковский р-н..." |
10.03.2007, 16:21 | #2 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Если Вы имеете ввиду выпадающий список об'екта Validation (Данные-Проверка-Список), то этот список ориентируется на ширину ячейки и с этим фактом, видимо, придётся смириться. Однако, если автоподбор ширины выпадающего списка для Вас имеет принципиальное значение, то можно создать собственную панель инструментов, в т.ч. и контекстное меню, разместить на нём стандартный контрол msoControlDropdown/msoControlComboBox заполнить его и обязательно установить значение свойства DropDownWidth = -1. Последнее позволит получить список, ширина которого будет ориентироваться на самый длинный элемент списка, однако, максимальное количество символов в строке не должно превышать 255. В общем думайте, и если подобное решение Вас устроит, то я могу набросать готовый пример.
|
10.03.2007, 16:37 | #3 |
Пользователь
Регистрация: 25.11.2006
Сообщений: 46
|
К сожалению, не могу понять всего что Вы предлагаете. Я действительно пользуюсь стандартным способом (Данные-Проверка-Список). В предлагаемом Вами варианте, есть ли возможность ссылаться на определенный список?
|
10.03.2007, 17:14 | #4 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Собственно говоря, я всего лишь предложил программно, например, при открытии нужной рабочей книги, создать панель инструментов и расположить на ней стандартный список, такой как например, Шрифты. А при выделении нужной ячейки/диапазона ячеек отображать эту панель инструментов с целью выбора нужного элемента. Ссылаться этот список на ячейки рабочего листа не может, но мы можем заполнить его данными нужных ячеек или данными массива, например, при его создании или перед отображением.
|
10.03.2007, 17:26 | #5 |
Пользователь
Регистрация: 25.11.2006
Сообщений: 46
|
Впринципе такой вариант подходит. Только было бы неплохо, чтобы была возможность в дальнейшем этот список редактировать, а не только перед его созданием.
|
10.03.2007, 20:28 | #6 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Вот пример того, о чём я говорил ранее, кстати, там даже наличествует пример программного изменения ширины списка объекта Validation (только пользоваться этим способом особо не рекомендуется)
|
10.03.2007, 21:10 | #7 |
Пользователь
Регистрация: 25.11.2006
Сообщений: 46
|
Спасибо, Павел. Буду разбираться... Единственное, подскажите, пожалуйста, как изменить эту строку (я просто совсем не силен в VBA):
For Each iCell In Range([A2], [A65536].End(xlUp)) Так чтобы ссылка была на диапазаон A3:A150, в другом рабочем листе, под назвнием ЛПУ? |
11.03.2007, 02:55 | #8 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Можно использовать имя рабочего листа :
Код:
Кроме этого, можно использовать именованный диапазон или именованную формулу, которая будет возвращать ссылку на диапазон. В общем, вариантов масса, выбирайте, только обратите внимание на то, что в Вашем варианте диапазон указан как константа, т.е. увеличение списка не предполагается. Код:
Последний раз редактировалось pashulka; 11.03.2007 в 02:57. |
11.03.2007, 06:31 | #9 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
Кстати, а вот и обновлённый пример, где вместо удаления элементов списка наличествует очистка, а источник данных располагается в другом рабочем листе.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
DBGrid ширина колонки | Pinya | БД в Delphi | 7 | 07.08.2008 09:22 |
Динамическая ширина столбцов | Nemon | Общие вопросы Delphi | 7 | 12.09.2007 13:15 |
Прокрутка выпадающего списка | SAndrus | Microsoft Office Excel | 2 | 16.06.2007 17:52 |
Ширина столбцов в DBGrid | Elena | БД в Delphi | 1 | 27.04.2007 15:34 |