Новости:

Подпишитесь на рассылку новых сообщений форума через службу рассылок: Subscribe.ru

Главное меню

Список уникальных значений по условию.

Автор Verter, 09.04.2012, 20:31

« назад - далее »

Verter

 Здравствуйте уважаемые.
В очередной раз обращаюсь за помощью. Попытался сам собрать что то из примеров на форуме, да вот никак не получается т.к. в VBA не силен. Помогите плз. если вообще возможно так сделать. См. вложение. Спасибо.

MCH


Verter

Цитата: MCH от 09.04.2012, 20:46
посмотрите здесь:
http://excelvba.ru/code/DropDownList
и здесь:
http://www.planetaexcel.ru/forum.php?thread_id=36826
Это не совсем то что нужно. Список должен формироваться по условию значения находящегося в соседнем столбце активной строки. т.е. в зависимости от цифры в первом столбце должен быть сформирован список в ячейке второго столбца, либо введено новое значение, а то что находится по ссылкам можно сделать и автофильтром (alt+стрелка вниз) чем сейчас и пользуюсь.

nilem

Может, как-то так? Попробуйте изменить существующее или добавить новое значение в 1-м столбце таблицы.

Verter

Спасибо за помощь, как раз то что надо. Только никак вот не могу разобраться как это сделано :). Есть 2 вопроса.
1. Можно ли сделать так что бы при добавлении новых значений в первом или втором столбце не выскакивали ошибки макроса и проверки данных?
2. Как перенести этот макрос на другую таблицу?
Заранее спасибо!

nilem

... не получилось воспроизвести ошибку макроса. Опишите подробнее.

Verter

Ошибка макроса возникает при вводе в левый столбец любого числа отличного от ранее введенных (в т.ч. и ноля) или если ввести текстовую строку. Причем после перезапуска макроса если ввести это же значение в следующую строку то ошибки не возникает.

nilem

Поправил.
Чтобы перенести на др. таблицу, вот здесь (в модуле листа)
If Intersect(Target, Me.ListObjects(1).ListColumns(1).Range) Is Nothing Then Exit Sub
ListObjects(1) 1 - это индекс таблицы, или так: ListObjects("Таблица1")

если нужно перенести в др. файл, потребуются две функции из Модуль2.

Verter

#8
Да. Спасибо. Все работает замечательно. Только вот осталась одна мелочь. Необходимо отключить галочку "Выводить сообщение об ошибке" во втором столбце  для того что бы можно было вводить новые данные.

nilem

измените в модуле листа:
...
With Me.Cells(r + i, c).Validation
    .Delete: .Add Type:=xlValidateList, Formula1:=s: .ShowError = False
End With
...