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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2015, 21:39   #1
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию Альтернатива выпадающему списку.

Каким образом - исполнить?

Я всё делаю стандартно - Данные - .... Список .. и диапазон, но, так задействованы ячейки.
А как сделать без данных в ячеек?
Типа обращение не к ячейкам, а к ~ в макросе.

В примере - яч. e-h как заменить на переменные???

P/ S/
Почему ту у меня режим Конструктора не активный, попытка его активировать, привело к ужасной, долгой загрузке екселя 2010, пришлось даже переставить образ винды!!
Изображения
Тип файла: jpg 32.jpg (34.5 Кб, 56 просмотров)

Последний раз редактировалось valerij; 01.10.2015 в 21:44.
valerij вне форума Ответить с цитированием
Старый 01.10.2015, 22:00   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Данные - .... Список .. и перечисление через разделитель (у меня ";") - это ответ как не задействовать ячейки. Про переменные не понял - но можно эту строку генерить и в макросе из переменных, но есть ограничение по длине строки (кстати может в 2010/13 пофиксили, никто не в курсе?)
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 01.10.2015, 22:15   #3
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
(у меня ";") - это ответ как не задействовать ячейки.
Забыл дописать.....
Да, так тоже делал, но в макросе - как?
Рекодером - так
Код:
With Selection.Validation
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="1;2;3"
    End With
Как вставить переменные, в место 1;2;3 - ?

Цифры - имя месяца - у меня или имена листов, т. е. xx = Sheets(1).Name(1), yy = Sheets(2).Name(2), zz = Sheets(3).Name(3)

Последний раз редактировалось valerij; 01.10.2015 в 22:22.
valerij вне форума Ответить с цитированием
Старый 01.10.2015, 22:19   #4
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

Записал макрорекордером
Код:
Sub Макрос1()
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=$A$1:$A$3"
    End With
End Sub
если вместо "=$A$1:$A$3"записать переменную отображающую массив данных, возможно и получиться.
Или так попробовать
Код:
Sub Макрос1()
    Dim a As Long, b As Long, c As Long, d As Long
    a = 1
    b = 2
    c = 3
    d = 4
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=a & "," & b & "," & c & "," & d
    End With
End Sub
У меня в список формируется через запятую, а не через ; как у вас. Вместо a, b, c, d, ставьте ваши переменные

Последний раз редактировалось gling; 01.10.2015 в 22:34.
gling вне форума Ответить с цитированием
Старый 01.10.2015, 22:44   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Sub Макрос1()
  Dim s As String
  s = "1,2,3,4,valerij,Hugo121,gling,IgorGO"
  With Cells(1, 4).Validation
    .Delete
    .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=s
    .IgnoreBlank = True
    .InCellDropdown = True
    .InputTitle = ""
    .ErrorTitle = ""
    .InputMessage = ""
    .ErrorMessage = ""
    .ShowInput = True
    .ShowError = True
  End With
End Sub
собрать в строку s произвольный список значений разделенных запятой, как два байта отослать! и вуаля... в Д1 - выпадающий список значений.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 01.10.2015, 22:46   #6
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от gling Посмотреть сообщение
З Вместо a, b, c, d, ставьте ваши переменные
вставил - ошибка
Код:
Sub Макрос1()
    Dim a As Long, b As Long, c As Long, d As Long
    a = Sheets(1).Name
    b = Sheets(2).Name
    c = Sheets(3).Name
    d = 0
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=a & "," & b & "," & c & "," & d
    End With
End Sub
а-а, увидел!!
Код:
Sub Макрос1()
    Dim a As String, b As String, c As String, d As Long
    a = Sheets(1).Name
    b = Sheets(2).Name
    c = Sheets(3).Name
    d = 0
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=a & "," & b & "," & c & "," & d
    End With
End Sub
Дякую!!!
Спасибо!!!

(\__/)
(='.'=)
E[:]|||[:]З
(")_(")

Последний раз редактировалось valerij; 01.10.2015 в 22:56.
valerij вне форума Ответить с цитированием
Старый 01.10.2015, 23:21   #7
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

А чё ошибку выбивает?
Жмём на Лист4!!!!
Вложения
Тип файла: rar vp.rar (13.9 Кб, 9 просмотров)
valerij вне форума Ответить с цитированием
Старый 01.10.2015, 23:28   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=a & "," & b & "," & c
    End With
что бы начать движение - нужно сняться с "ручника"
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 01.10.2015, 23:36   #9
valerij
Старожил
 
Аватар для valerij
 
Регистрация: 12.05.2007
Сообщений: 2,339
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
Код:
    With Selection.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:=a & "," & b & "," & c
    End With
что бы начать движение - нужно сняться с "ручника"
Тю - .....
А у меня куда делась строка - .Delete???

барабашка в доме!!!!!!!!!!!

Мужики - честно, очки искал три дня, всё перевернул....

А потом гляжу, а они сверху на телеке появились...

Я не пьющий!!!!!!!!!!
valerij вне форума Ответить с цитированием
Старый 02.10.2015, 09:10   #10
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Не забывайте про длину строки. Если не в этой задаче, то в другой можете столкнуться.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна помощь в привязке к выпадающему меню определённой формулы VilgaukAV Microsoft Office Excel 2 14.11.2014 14:07
Поиск по списку androidvsu Общие вопросы по Java, Java SE, Kotlin 4 14.06.2010 18:43
Поиск по списку gavrylyuk Microsoft Office Excel 6 25.03.2010 16:24
Загрузка по списку jkpro Работа с сетью в Delphi 23 24.09.2009 17:26
Обратиться к впадающему списку Exo Microsoft Office Excel 9 28.11.2008 14:01