Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2010, 11:16   #1
reznik
Пользователь
 
Регистрация: 26.02.2010
Сообщений: 12
По умолчанию Форма с выпадающим списков в excel

Вот такая проблемка: есть форма в которой есть выпадающие списки, только форма значения берет не из списков которые созданы на странице, а просто из ячеек, как это можно исправить?
reznik вне форума Ответить с цитированием
Старый 03.03.2010, 11:25   #2
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Здравствуйте.
Во-первых: что за формы? UserForms или формы на листе.
Во-вторых: что значит
Цитата:
не из списков которые созданы на странице, а просто из ячеек
А ячейки не на странице? Что хочется? И может файл имеет смысл приложить?
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 03.03.2010, 11:26   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Сама форма ничего не берет, а берет данные от туда, откуда вы указали. Надеюсь вы пишете код, а не он появляется там сам по себе каким-то чудесным образом, укажите правильный источник данных и будет вам счастье.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 03.03.2010, 11:33   #4
reznik
Пользователь
 
Регистрация: 26.02.2010
Сообщений: 12
По умолчанию

Всем спасибо

Последний раз редактировалось reznik; 03.03.2010 в 23:04.
reznik вне форума Ответить с цитированием
Старый 03.03.2010, 13:04   #5
reznik
Пользователь
 
Регистрация: 26.02.2010
Сообщений: 12
По умолчанию

а как указать источник на выпадающие списки?
reznik вне форума Ответить с цитированием
Старый 03.03.2010, 13:40   #6
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
Сообщение от reznik Посмотреть сообщение
а как указать источник на выпадающие списки?
Дело осложняется тем, что в разных столбцах - разные источники данных для выпадающих списков.

К примеру, во втором столбце данные для списка берутся с другого листа, а для остальных столбцов - список значений вбит непосредственно через меню Данные - Проверка

Как я уже говорил, надо переделывать алгоритм заполнения комбобоксов, а именно процедуру Public Sub UpdateComboSource().

В частности, надо заменить этот код
Код:
            For i = СтрокаШапкиНачало + 1 To endRow
                If InStr(masStr, CStr(Cells(i, col)) + "#~#") = 0 Then
                    masStr = masStr + CStr(Cells(i, col)) + "#~#"
                End If
            Next i
на чтение данных из объектов Validation ячеек второй строки.
EducatedFool вне форума Ответить с цитированием
Старый 03.03.2010, 14:29   #7
reznik
Пользователь
 
Регистрация: 26.02.2010
Сообщений: 12
По умолчанию

если не секрет то как?
reznik вне форума Ответить с цитированием
Старый 10.03.2010, 17:17   #8
JJill
 
Регистрация: 10.03.2010
Сообщений: 3
По умолчанию

вопрос не по данной теме- чтоб новую не создавать.
мне нужно создать выпадающий список из более чем 300 пунктов
Код:
For Each TemlRow In Template.UsedRange.Columns(1).Row 
    List = "," + List + TemlRow.Cells(1, 1)
Next
List = Mid(List, 2)

    With ce
        .HorizontalAlignment = xlCenter
        With .Validation ' формируем выпадающий список
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, Operator:= _
>>>                 xlBetween, Formula1:=List
            .IgnoreBlank = True: .InCellDropdown = True
        End With
в строчке, отмеченной >>> возникла ошибка 1004, я так понял изза превышения какого то лимита переменной List
подскажите пожалуйста, как сделать правильно?
спасибо!
JJill вне форума Ответить с цитированием
Старый 10.03.2010, 17:32   #9
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
строчке, отмеченной >>> возникла ошибка 1004, я так понял изза превышения какого то лимита переменной List
Сработало ограничение на длину формулы (параметр Formula1)

Если список значений у вас уже в диапазоне ячеек, то зачем программно формировать список значений?
Просто присвойте параметру Formula1 адрес диапазона ячеек со значениями для списка.
Если список на другом листе - сначала программно (или вручную) присваиваете имя диапазону, а потом: Formula1:="=ИмяДиапазона"
EducatedFool вне форума Ответить с цитированием
Старый 10.03.2010, 17:46   #10
JJill
 
Регистрация: 10.03.2010
Сообщений: 3
Радость

Спасибо, работает
JJill вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите с выпадающим меню bsgroupua JavaScript, Ajax 0 25.12.2009 23:58
конфликт разделителей чисел при использовании ControlSource (excel + форма vba) alvazor Microsoft Office Excel 2 06.07.2009 12:24
Составная форма с иерархической системой ниспадающих списков lastochka Microsoft Office Access 8 22.12.2008 14:51
Grid c выпадающим списком SERG1980 Компоненты Delphi 2 11.12.2008 14:52
Проблемма с выпадающим списком mma БД в Delphi 1 24.01.2008 18:31