Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Скрытие определенных строк по условию - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Скрытие определенных строк по условию
bosikan Дата: Четверг, 11.10.2018, 13:47 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Добрый день форумчане! Просьба помочь с написанием несложного макроса. Суть в чём: есть диапазон скрытия строк (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")
К сообщению приложен файл: 2461442.xlsx (10.6 Kb)
 
Ответить
СообщениеДобрый день форумчане! Просьба помочь с написанием несложного макроса. Суть в чём: есть диапазон скрытия строк (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")

Автор - bosikan
Дата добавления - 11.10.2018 в 13:47
bosikan Дата: Четверг, 11.10.2018, 15:30 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Вроде написал... осенило...

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$4" Then
Rows("10:33").EntireRow.Hidden = False
If Target.Value = "A" Then
Rows("16:33").EntireRow.Hidden = True
End If
If Target.Value = "B" Then
Range("A22:A33,A10:A15").EntireRow.Hidden = True
End If
If Target.Value = "C" Then
Range("A28:A33,A10:A21").EntireRow.Hidden = True
End If
If Target.Value = "D" Then
Range("A10:A27").EntireRow.Hidden = True
End If
End If
End Sub
[/vba]


Сообщение отредактировал bosikan - Четверг, 11.10.2018, 15:49
 
Ответить
СообщениеВроде написал... осенило...

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$C$4" Then
Rows("10:33").EntireRow.Hidden = False
If Target.Value = "A" Then
Rows("16:33").EntireRow.Hidden = True
End If
If Target.Value = "B" Then
Range("A22:A33,A10:A15").EntireRow.Hidden = True
End If
If Target.Value = "C" Then
Range("A28:A33,A10:A21").EntireRow.Hidden = True
End If
If Target.Value = "D" Then
Range("A10:A27").EntireRow.Hidden = True
End If
End If
End Sub
[/vba]

Автор - bosikan
Дата добавления - 11.10.2018 в 15:30
_Boroda_ Дата: Четверг, 11.10.2018, 15:32 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
bosikan, Вы молодец, что сами придумали и что поделились, но все-таки
- Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщениеbosikan, Вы молодец, что сами придумали и что поделились, но все-таки
- Прочитайте Правила форума
- Оформите код тегами (в режиме правки поста выделите код и нажмите кнопку #, пояснялка здесь)

Автор - _Boroda_
Дата добавления - 11.10.2018 в 15:32
bosikan Дата: Четверг, 11.10.2018, 15:41 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
И еще подсказали на другом форуме:

[vba]
Код
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
[/vba]


Сообщение отредактировал bosikan - Четверг, 11.10.2018, 15:49
 
Ответить
СообщениеИ еще подсказали на другом форуме:

[vba]
Код
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
[/vba]

Автор - bosikan
Дата добавления - 11.10.2018 в 15:41
bosikan Дата: Четверг, 11.10.2018, 15:50 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Только в последнем коде при изменении других любых ячеек скрытие строк "слетает". Как исправить?
 
Ответить
СообщениеТолько в последнем коде при изменении других любых ячеек скрытие строк "слетает". Как исправить?

Автор - bosikan
Дата добавления - 11.10.2018 в 15:50
Pelena Дата: Четверг, 11.10.2018, 15:58 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 19405
Репутация: 4555 ±
Замечаний: ±

Excel 365 & Mac Excel
подсказали на другом форуме

в соответствии с Правилами форума нужно дать ссылку на обсуждение на других форумах


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
подсказали на другом форуме

в соответствии с Правилами форума нужно дать ссылку на обсуждение на других форумах

Автор - Pelena
Дата добавления - 11.10.2018 в 15:58
bosikan Дата: Четверг, 11.10.2018, 16:07 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Разобрался! Еще раз спасибо!
 
Ответить
СообщениеРазобрался! Еще раз спасибо!

Автор - bosikan
Дата добавления - 11.10.2018 в 16:07
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!