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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2010, 13:29   #1
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию Скрытие строк по условию

Всем здравствуйте!

Прошу помочь, в решении следущей задачи:
См. вложение.
Необходимо скрыть все строки, значение которых по столбцу В равно 0.

Спасибо.
Вложения
Тип файла: rar скр_строк.rar (71.0 Кб, 53 просмотров)
MaxxVer вне форума Ответить с цитированием
Старый 08.04.2010, 13:51   #2
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

for each c in range("B1:B200")'здесь подставишь свое
if c.value=0 then c.EntireRow.Hidden = True
next c
аналитика вне форума Ответить с цитированием
Старый 08.04.2010, 13:57   #3
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

Уточню:
не думайте что я не умею пользоваться автофильтром, он здесь работает, но от этой таблицы хочется мгновенной реакции, а при использовании фильтра, его приходится переключать каждый раз когда данные меняются, поэтому если возможно это сделать макросом, буду благодарен.
MaxxVer вне форума Ответить с цитированием
Старый 08.04.2010, 14:10   #4
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

to аналитика.
Спасибо. Работает, но почему-то происходит довольно длительный расчет (около 3 сек.)... И еще, макрос получается тоже надо запускать каждый раз при смене значений? Нельзя прописать например так: при смене значения в ячейке B4 запустить макрос?
MaxxVer вне форума Ответить с цитированием
Старый 08.04.2010, 14:21   #5
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

правой кнопкой по ярлыку листа - "Исходный текст",
в этот модуль пишешь:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range

If Target.Address = Range("B4").Address Then
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual'может это поможет для ускорения

For Each c In Range("B1:B200") 'здесь подставишь свое
c.EntireRow.Hidden = (c.Value = 0)
Next c

Application.Calculation = xlCalculationAutomatic
End If
End Sub

Последний раз редактировалось аналитика; 08.04.2010 в 14:47. Причина: Усовершенствование кода
аналитика вне форума Ответить с цитированием
Старый 08.04.2010, 14:44   #6
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

Первый раз срабатывает, скрывает нужные строки, потом когда изменяешь значения, скрытые строки обратно не отображаются....
MaxxVer вне форума Ответить с цитированием
Старый 08.04.2010, 14:49   #7
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

см. изменение в коде
аналитика вне форума Ответить с цитированием
Старый 08.04.2010, 14:56   #8
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

это я уже измененный применил..
MaxxVer вне форума Ответить с цитированием
Старый 08.04.2010, 14:59   #9
аналитика
Форумчанин
 
Регистрация: 14.05.2009
Сообщений: 311
По умолчанию

c.EntireRow.Hidden = (c.Value = 0)
-это-то заметил?
аналитика вне форума Ответить с цитированием
Старый 08.04.2010, 15:06   #10
MaxxVer
Форумчанин
 
Регистрация: 17.03.2009
Сообщений: 226
По умолчанию

Конечно, я полностью весь код вставил из последнего сабжа...
MaxxVer вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрытие неактивных строк Alex19789 Microsoft Office Excel 2 19.02.2010 13:57
Необычное условие скрытие строк интересует serafim09 Microsoft Office Excel 10 25.09.2009 11:16
Скрытие строк и столбцов Gawwws Microsoft Office Excel 4 19.10.2008 00:02
Скрытие столбцов по условию snake980 Microsoft Office Excel 6 26.02.2008 16:52
Скрытие ненужных строк/столбцов Bayers Microsoft Office Excel 4 19.10.2007 12:05