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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2018, 14:00   #1
Bosikan
 
Регистрация: 03.12.2016
Сообщений: 4
По умолчанию Скрытие определенных строк по условию

Добрый день форумчане! Просьба помочь с написанием несложного макроса. Суть в чём: есть диапазон скрытия строк (10:33), нужно чтобы при изменении в ячейке "C4" значений от A до D (сделал выпадающий список) скрывались строки по следующему принципу: Если стоит значение "A" - то скрыть все строки не относящиеся к этому диапазону (16:33), для "B" - скрыть строки 10:15 и 22:33, для "С" - 10:21 и 28:33, для D - 10:27.
Проще говоря для каждого значения ячейки "C4" должны быть ОТКРЫТЫ только соответствующие ему строки.

Для наглядности в файле раскрасил диапазоны разными цветами. Итого при значении "A" -должен остаться только зеленый диапазон, для значения "B" только желтый и так далее по списку. (PS скрытие строк не по условию цвета а по значению в ячейке "C4"
Вложения
Тип файла: xlsx Скрытие строк макросом.xlsx (10.6 Кб, 10 просмотров)
Bosikan вне форума Ответить с цитированием
Старый 11.10.2018, 14:42   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [c4]) Is Nothing And Target.Count = 1 Then
        Dim a As Range: Set a = Rows("10:15")
        Dim b As Range: Set b = Rows("16:21")
        Dim c As Range: Set c = Rows("22:27")
        Dim d As Range: Set d = Rows("28:33")
        Select Case (Target)
            Case "A": a.EntireRow.Hidden = False: b.EntireRow.Hidden = True: c.EntireRow.Hidden = True: d.EntireRow.Hidden = True
            Case "B": a.EntireRow.Hidden = True: b.EntireRow.Hidden = False: c.EntireRow.Hidden = True: d.EntireRow.Hidden = True
            Case "C": a.EntireRow.Hidden = True: b.EntireRow.Hidden = True: c.EntireRow.Hidden = False: d.EntireRow.Hidden = True
            Case "D": a.EntireRow.Hidden = True: b.EntireRow.Hidden = True: c.EntireRow.Hidden = True: d.EntireRow.Hidden = False
            
        End Select
    End If
End Sub
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 11.10.2018, 15:33   #3
Bosikan
 
Регистрация: 03.12.2016
Сообщений: 4
По умолчанию

Спасибо огромное!!! Очень выручили!!!

Последний раз редактировалось Bosikan; 11.10.2018 в 15:39.
Bosikan вне форума Ответить с цитированием
Старый 11.10.2018, 15:48   #4
Bosikan
 
Регистрация: 03.12.2016
Сообщений: 4
По умолчанию

При изменении любой ячейки, все скрытые строки почему-то открываются. Как сделать чтобы при изменении других ячеек эти строки не открывались?
Bosikan вне форума Ответить с цитированием
Старый 11.10.2018, 16:08   #5
Bosikan
 
Регистрация: 03.12.2016
Сообщений: 4
По умолчанию

Разобрался, еще раз спасибо!
Bosikan вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
скрытие строк по условию govorun1 Microsoft Office Excel 5 24.05.2014 21:50
Скрытие и отображение элементов ActiveX по условию Bozhkov Microsoft Office Excel 20 06.05.2012 16:01
Автоматическое скрытие/отображение столбцов по условию staniiislav Microsoft Office Excel 2 27.07.2011 16:28
Скрытие строк по условию MaxxVer Microsoft Office Excel 11 09.04.2010 05:55
Скрытие столбцов по условию snake980 Microsoft Office Excel 6 26.02.2008 16:52