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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2009, 17:07   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию Создание в VBA "поле с выпадающем списком"

Что-то ни как не могу освоить сабж в нужной ячейке. Либо не там создает, либо вообще выдает ошибку. :(( Как все же грамотно это сделать?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 22.03.2009, 17:36   #2
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Смотря что Вы понимаете под "полем с выпадающем списком"

Если то, что получается через меню Данные - Проверка, то попробуйте так:

Код:
Sub test()
    FormatConfirmationCell [a2]
End Sub

Sub FormatConfirmationCell(ByRef ce As Range)
    With ce
        .HorizontalAlignment = xlCenter
        With .Validation ' формируем выпадающий список
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, Operator:= _
                 xlBetween, Formula1:=ce.Value & ", Выполнено, Не выполнено"
            .IgnoreBlank = True: .InCellDropdown = True
        End With
        .FormatConditions.Delete ' условное форматирование
        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Выполнено"""
        .FormatConditions(1).Interior.ColorIndex = 35    '4
        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Не выполнено"""
        .FormatConditions(2).Interior.ColorIndex = 38    '3
    End With
End Sub
Ключевое слово для поиска - Validation

Если же нужно создать на листе элемент управления Combobox, то формулируйте задание точнее...

Цитата:
Либо не там создает, либо вообще выдает ошибку.
Какую ошибку? Приведите пример своего кода.

Последний раз редактировалось EducatedFool; 22.03.2009 в 17:52.
EducatedFool вне форума Ответить с цитированием
Старый 30.03.2009, 12:22   #3
Кринум
Новичок
Джуниор
 
Регистрация: 30.03.2009
Сообщений: 1
По умолчанию

Почему если ваш код вставить в процедуру обработки клика по кнопке вылетает ошибка?

Код:

Private Sub CommandButton1_Click()
FormatConfirmationCell [a2]
End Sub
Sub test()
FormatConfirmationCell [a2]
End Sub

Sub FormatConfirmationCell(ByRef ce As Range)
With ce
.HorizontalAlignment = xlCenter
With .Validation ' формируем выпадающий список
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation , Operator:= _
xlBetween, Formula1:=ce.Value & ", Выполнено, Не выполнено"
.IgnoreBlank = True: .InCellDropdown = True
End With
.FormatConditions.Delete ' условное форматирование
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Выполнено"""
.FormatConditions(1).Interior.Color Index = 35 '4
.FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Не выполнено"""
.FormatConditions(2).Interior.Color Index = 38 '3
End With
End Sub

Ошибка
Run-time error '-2147417848(80010108)'

Method 'Add' of object 'Validation' failed
Кринум вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание "суб-меню" из файлов в заданном каталоге Abhorrer Общие вопросы Delphi 5 14.03.2009 21:47
Игра "Поле чудес". Нужна trOid Фриланс 15 24.11.2008 18:03
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Помогите решить задачу в VBA "Температура человека" Versifikator Помощь студентам 1 06.12.2007 23:58
Игровое поле с шестиугольной "клеткой" Кронос Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 21.11.2007 18:14