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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2009, 13:07   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию Подготовка даных для списка в макросе

Создаю списко вручную, указываю строку вида "111;222;333". Список создался.
Создал функцию котораю возращает подобную строку. Создал переменную в которой прописан вызов этой функции. Но список не создается... :(( Ругается мол нужны ли ячейки либо, данные с разделителем.
Как быть? Что делать?

Пример прилагается...
Вложения
Тип файла: rar Книга1.rar (5.4 Кб, 22 просмотров)
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 07.05.2009, 13:39   #2
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Для проверки данных используется либо список созданный в ручную, либо диапазон ячеек с значениями.
В твоем случае ты пытаешься создать список из одной ячейки.
вариант 1: сразу передай список макросом для установки проверки условия
вариант 2: раскидай список по ячейкам и укажи их диапазон. Тогда при смене значения в ячейке будет меняться содержимое списка.

Я правильно понял вопрос?
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 07.05.2009, 13:43   #3
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от mchip Посмотреть сообщение
Для проверки данных используется либо список созданный в ручную, либо диапазон ячеек с значениями.
В твоем случае ты пытаешься создать список из одной ячейки.
вариант 1: сразу передай список макросом для установки проверки условия
вариант 2: раскидай список по ячейкам и укажи их диапазон. Тогда при смене значения в ячейке будет меняться содержимое списка.

Я правильно понял вопрос?
Спасибо! Попробую нужные макросы.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 08.05.2009, 06:30   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,858
По умолчанию

А что, код из этой темы уже не создаёт выпадающий список в ячейке?

Можете попробовать такой вариант:
Код:
Sub test()
    AddValidation [a4], СписокЗначений
End Sub

Sub AddValidation(ByRef ce As Range, ByVal Список As String)
        With ce.Validation    ' формируем выпадающий список
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, Operator:= _
                 xlBetween, Formula1:=Список
            .IgnoreBlank = True: .InCellDropdown = True
        End With
End Sub

Function СписокЗначений() As String
    sep = ", "
    For i = 1 To 10
        СписокЗначений = СписокЗначений & sep & "Значение " & i
    Next
    СписокЗначений = Mid(СписокЗначений, 2)
End Function
EducatedFool вне форума Ответить с цитированием
Старый 08.05.2009, 11:03   #5
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от EducatedFool Посмотреть сообщение
А что, код из этой темы уже не создаёт выпадающий список в ячейке?

Можете попробовать такой вариант:
Код:
Sub test()
    AddValidation [a4], СписокЗначений
End Sub

Sub AddValidation(ByRef ce As Range, ByVal Список As String)
        With ce.Validation    ' формируем выпадающий список
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertInformation, Operator:= _
                 xlBetween, Formula1:=Список
            .IgnoreBlank = True: .InCellDropdown = True
        End With
End Sub

Function СписокЗначений() As String
    sep = ", "
    For i = 1 To 10
        СписокЗначений = СписокЗначений & sep & "Значение " & i
    Next
    СписокЗначений = Mid(СписокЗначений, 2)
End Function
Ранее необходимо было создать список. Теперь стоит иная задача, в уже созданный список подать другие данные.
Это я пытаюсь решить задачу с вводом адреса. Есть идея написать макрос который подготавливал бы данные для списка из ходя из параметров. Подготовить данные оказалась не проблема, а вот передать их в список пока не удаётся.
Вроде как бы данные при указании диапазона ячеек представляют собой массив, но попытка создать массив и подсунуть его удалась... Почему-то постоянно возвращался 0. Хотя возможно и я где-то напортачил...
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 08.05.2009, 11:24   #6
mchip
Форумчанин
 
Регистрация: 24.06.2008
Сообщений: 516
По умолчанию

Так выложи файл
Можно сделать все! Было бы время, да деньги...
mchip вне форума Ответить с цитированием
Старый 09.05.2009, 00:18   #7
vasok
Новичок
Джуниор
 
Регистрация: 08.05.2009
Сообщений: 1
По умолчанию

Нужна помощь...

Подскажите как реализовать сие в excel_2007:

1.)фокусировку на первом элементе выпадающего списка.

2.)имеется три списка:Города,Районы и Улицы, у каждого города - свои районы, у каждого района - свои улицы. Необходимо реализовать ввод данных в ячейку таблицы двумя способами:

Первый-выбор допустимых значений из раскрывающегося списка (если в ячейке А1 в качестве города выбран Нижний, тогда в раскрывающимся списке ячейки В1 должны находиться только районы Нижнего...у улиц такаяже привязка к районам)

Второй-ввод значения вручную, при этом в случае совпадения 2 или более символов (анализируются совпадения с аналогичными данными: вводим город - проверяем посимвольно начала названий городов, в случае если название города состоит из двух слов, проверяем на совпадение начало обоих слов) у пользователя появляется возможность выбора искомого варианта из раскрывающегося списка

3.)в базе данных пользователь задаёт критерии поиска при нажатии кнопки ПОИСК в таблице отображаются все варианты, удовлетворившие критерию поиска, также рядом с каждым вариантом добавляектся кнопка(1клик-появляется галка, два-галка исчезает)...
Вопрос: как осуществить автоматическую привязку макроса к каждой кнопке (количество появляющихся кнопок соответствует количеству вариантов, удовлетворивших критерию)

4.) Как написать макрос, котоый потом удалял бы эту самую кнопку

Если какой-то из вопросов задан не потеме-просьба киньте ссылку на тему, в которой следует его поместить...

ЗАРАНЕЕ СПАСИБО, буду очень признателен любым вариантам реализации...
vasok вне форума Ответить с цитированием
Старый 10.05.2009, 15:10   #8
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от mchip Посмотреть сообщение
Так выложи файл
Первые функции были умышленно стерты. Сейчас воссоздал их заново. Вот файл...
Макросы test44 и test77 заносят в переменные внешне похожие данные (массивы). Но в екселе они выглядят по разному (строка "A"), и список на основе функции не работает... (
Вложения
Тип файла: rar test списки.rar (7.5 Кб, 50 просмотров)
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подготовка к олимпеаде Вацура Помощь студентам 4 29.04.2010 07:27
как сделать фильтр для списка combobox ? sergey113 Помощь студентам 2 13.08.2008 16:29
База даных Access xakkkkker БД в Delphi 6 31.03.2008 16:47
Праблеми с дабавление даных. marcho10 БД в Delphi 2 10.07.2007 13:10