Excel. Проверка данных. Зависимый список?

Программирование на Visual Basic for Applications
Busybackson
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 22.07.2003 (Вт) 16:07

Excel. Проверка данных. Зависимый список?

Сообщение Busybackson » 28.02.2005 (Пн) 0:52

Суть такая. Есть таблица расходов. В ней, в частности, два столбца - статья и примечание.
Например, статья может быть "Аренда", а примечание "Аренда офисов". У ячеек и статей, и примечаний есть проверка данных - их значения должны быть выбираемы из списка.
Как сделать зависимый список примечаний? То есть, если выбрана статья "Аренда", то чтобы в соседней ячейке можно было выбирать только из списка аренд, а не из всех примечаний?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.02.2005 (Пн) 9:18

Без кода никак.
Lasciate ogni speranza, voi ch'entrate.

Busybackson
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 22.07.2003 (Вт) 16:07

Сообщение Busybackson » 28.02.2005 (Пн) 9:29

Это я как раз понимаю. Я не могу придумать, как сделать изменение правила проверки данных столбца "Примечание" по изменению ячеек столбца "статья"? То есть человек выбрал статью Аренда - получает выбор из списка аренд. Потом взял, поменял статью на Услуги - и получает список услуг... У меня это в голове не укладывается.. Это функция должна быть? Процедура? Как она будет запускаться? По-моему, событий-то нет типа ячейка_изменена?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 28.02.2005 (Пн) 9:53

На событие Worksheet_Change вешается процедура, которая проверяет, какая ячейка была изменена. Если та, что интересует, то выполняется код Cells(...).Validation.Formula1=...
Lasciate ogni speranza, voi ch'entrate.

Busybackson
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 22.07.2003 (Вт) 16:07

Сообщение Busybackson » 28.02.2005 (Пн) 10:00

Thanks a lot:) До проверки изменения листа я что-то не доперла.

Busybackson
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 22.07.2003 (Вт) 16:07

Сообщение Busybackson » 28.02.2005 (Пн) 10:02

А. Забыла спросить ;) А как проверить - какую ячейку изменили? ;)

Busybackson
Начинающий
Начинающий
 
Сообщения: 11
Зарегистрирован: 22.07.2003 (Вт) 16:07

Сообщение Busybackson » 28.02.2005 (Пн) 10:09

Уже сама все поняла. Вопрос снят

Stas-ka
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 28.02.2005 (Пн) 15:31
Откуда: Красноярск

Сообщение Stas-ka » 28.02.2005 (Пн) 15:41

Когда-то у меня была такая же задача. Тогда я еще не умел особо программировать на VBA Excel (только если MessageBox на кнопку сохранить повешать). Задача решалась забиванием данных для каждого из возможных вариантов выбора в отдельный столбец. Далее, при помощи функции ИНДЕКС в конечном массиве вычислялись варианты выбора второго признака. А вот выбор второго признака проверялся именно по тому, конечному, диапазону (вычисленному по функции ИНДЕКС). Сейчас даже не знаю, какой способ лучше.


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3

    TopList  
cron