Страницы: 1
RSS
Автоматическое скрытые/открытие пустых формул, Доработка макроса по выпадающему списку с мультивыбором
 
Добрый день! Возникла задача: создан "бланк заказа", в котором позиции набираются через Выпадающие списки с мультивыбором - в выделенной ячейке выбирается нужный предмет, автоматически "появляется" (на самом деле отображается скрытая) строка с выбранным предметом. В случае, если предмет выбран не тот, то при стирании значения в ячейке, строка автоматом "исчезает". Как то собрав кучу макросов в одно получилось решить эту задачу, но при попытке отредактировать/создать заново попал в ступор.
Прилагаю файл с готовым решением по мультивыбору, где не хватает этого скрытия.
Вариант с Запрограммированными кнопками "Скрыть/показать" не подходит.
Интересует больше разъяснение (как в приемах) примерно какая строка макроса что дает...
 
Добавляю файл где это все работает, но не могу понять как - макрос собрал из того что нашел на сайте, что-то удалил, что-то добавил - и все заработало. но ни изменить, ни создать заново не могу, потому как не пойму что в макросе дает скрыть/показать строки.
 
эта строчка отвечает за скрытие или отображение строки.
Код
 c.EntireRow.Hidden = (c.Value = 0) 
П.С. для того чтобы не было видно работы макроса на экране:
Код
Sub....
Application.ScreenUpdating = False 'отключаем обновление экрана
код....
 Application.ScreenUpdating = True 'включаем обновление экрана
End Sub
Изменено: V - 17.06.2014 18:28:22
 
Понятно теперь какая строчка в макросе за что отвечает. Но при копировании (с необходимыми изменениями диапазонов) макрос начинает работать не верно - первая строчка заполняется нормально. а вот следующая встает не на свое место, а ниже в таблице. От Файла "донора" есть некоторое отличие - раньше определяющим столбцом для скрытия был не столбец с подставляемыми значениями.
 
Цитата
V пишет: эта строчка отвечает за скрытие или отображение строки.
Код
  c.EntireRow.Hidden = (c.Value = 0)  
Хорошо, а по какому принциму она отбирает? насколько я понимаю за выбор решающего значения отвечает:
For Each c In Range("I6:I35" ;)
но если в новой таблице я выбираю столбец с текстовым значением (а с числовым или денежным, как в "проверке" ;) , то ничего не работает(((
 
в файле в #4 посте "Итого" уберите из столбца "А".
Изменено: V - 17.06.2014 22:19:31
Страницы: 1
Наверх