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

Вход

Регистрация

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

 

= Мир MS Excel/Скрытие и показ строк на основании их значений - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрытие и показ строк на основании их значений (Макросы/Sub)
Скрытие и показ строк на основании их значений
AndreiCh Дата: Пятница, 17.07.2020, 18:25 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Доброго времени суток.
Я не очень разбираюсь в VBA, обшарил похожие темы, но, к сожалению, не нашел решения своей проблемы.
Суть в следующем: мне нужен макрос на одновременное скрытие и отображение строк на основании их значений, например: если в любой ячейке строки встречается значение = "Нет" - строка скрывается, если строка скрыта, а в ней искомого значения нет - она автоматически открывается. Нужно чтобы он работал автоматически при обновлении данных в ячейках.
Удалось написать вот такой макрос:
[vba]
Код
Private Sub Worksheet_Calculate()

    Dim ra As Range, delra As Range, ТекстДляПоиска As String
    Application.ScreenUpdating = False
    ТекстДляПоиска = "Нет"
    For Each ra In ActiveSheet.UsedRange.Rows
        If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
            If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
        End If
    Next
    If Not delra Is Nothing Then delra.EntireRow.Hidden = True
    Application.ScreenUpdating = True
End Sub
[/vba]

На скрытие работает отлично, но сколько я ни бился над написанием кода на открытие строк без вмешательства пользователя - у меня ничего не получилось. В примере обновление данных осуществляется изменением даты из выпадающего списка.
Заранее благодарю.
К сообщению приложен файл: 5197787.xlsm (31.9 Kb)


Сообщение отредактировал AndreiCh - Пятница, 17.07.2020, 18:25
 
Ответить
СообщениеДоброго времени суток.
Я не очень разбираюсь в VBA, обшарил похожие темы, но, к сожалению, не нашел решения своей проблемы.
Суть в следующем: мне нужен макрос на одновременное скрытие и отображение строк на основании их значений, например: если в любой ячейке строки встречается значение = "Нет" - строка скрывается, если строка скрыта, а в ней искомого значения нет - она автоматически открывается. Нужно чтобы он работал автоматически при обновлении данных в ячейках.
Удалось написать вот такой макрос:
[vba]
Код
Private Sub Worksheet_Calculate()

    Dim ra As Range, delra As Range, ТекстДляПоиска As String
    Application.ScreenUpdating = False
    ТекстДляПоиска = "Нет"
    For Each ra In ActiveSheet.UsedRange.Rows
        If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
            If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
        End If
    Next
    If Not delra Is Nothing Then delra.EntireRow.Hidden = True
    Application.ScreenUpdating = True
End Sub
[/vba]

На скрытие работает отлично, но сколько я ни бился над написанием кода на открытие строк без вмешательства пользователя - у меня ничего не получилось. В примере обновление данных осуществляется изменением даты из выпадающего списка.
Заранее благодарю.

Автор - AndreiCh
Дата добавления - 17.07.2020 в 18:25
InExSu Дата: Пятница, 24.07.2020, 22:40 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 648
Репутация: 96 ±
Замечаний: 0% ±

Excel 2010, 365
Привет!
Автоматически, по Вашим условиям - всегда будут скрытые строки.
Во вложении полуавтомат.
К сообщению приложен файл: Row_Show_Hidd.xlsm (39.1 Kb)


Разработчик Битрикс24 php, Google Apps Script, VBA Excel Windows/Mac
 
Ответить
СообщениеПривет!
Автоматически, по Вашим условиям - всегда будут скрытые строки.
Во вложении полуавтомат.

Автор - InExSu
Дата добавления - 24.07.2020 в 22:40
AndreiCh Дата: Среда, 29.07.2020, 22:13 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте.
InExSu, спасибо, но это немного не то, что нужно.
По моему условию всегда будут скрытые строки, т.к. у меня не получается написать код на открытие. Мне нужен именно полностью автоматический макрос. Был бы признателен, если бы подкорректировали/дополнили мой код.
 
Ответить
СообщениеЗдравствуйте.
InExSu, спасибо, но это немного не то, что нужно.
По моему условию всегда будут скрытые строки, т.к. у меня не получается написать код на открытие. Мне нужен именно полностью автоматический макрос. Был бы признателен, если бы подкорректировали/дополнили мой код.

Автор - AndreiCh
Дата добавления - 29.07.2020 в 22:13
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Скрытие и показ строк на основании их значений (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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