Здравствуйте! Столкнулся с проблемой. Есть таблица, хочу сделать на отдельном листе вывод информации по условиям. В таблице много пустых ячеек, мне необходимо: 1. Я указываю условие. 2. Как впр он проверяет строку. 3. Если значение не пустое выводит заголовок столбца. 4. И так пока все не выведет (больше 6 значений не бывает, так что максимум 6 ячеек вывода. Мне бы хватило и ВПР, но таблица вывода будет сильно нечитаема. Или может подскажете формулу при которой если в 3 смежных столбцах на одной строке ячейки пустые, то строку скрыть? Это более простой вариант для моей проблемы) Заранее спасибо!
Здравствуйте! Столкнулся с проблемой. Есть таблица, хочу сделать на отдельном листе вывод информации по условиям. В таблице много пустых ячеек, мне необходимо: 1. Я указываю условие. 2. Как впр он проверяет строку. 3. Если значение не пустое выводит заголовок столбца. 4. И так пока все не выведет (больше 6 значений не бывает, так что максимум 6 ячеек вывода. Мне бы хватило и ВПР, но таблица вывода будет сильно нечитаема. Или может подскажете формулу при которой если в 3 смежных столбцах на одной строке ячейки пустые, то строку скрыть? Это более простой вариант для моей проблемы) Заранее спасибо! Jovsen
Спасибо! Как вариант, но в данном случае фильтр придется применять постоянно вручную, и сбрасывать его. А я бы хотел чтоб это было без постороннего вмешательства. Выбрали необходимые номера из выпадающего списка и все. (Коллеги в разной степени владеют excel, и для некоторых это будет сложно)
Спасибо! Как вариант, но в данном случае фильтр придется применять постоянно вручную, и сбрасывать его. А я бы хотел чтоб это было без постороннего вмешательства. Выбрали необходимые номера из выпадающего списка и все. (Коллеги в разной степени владеют excel, и для некоторых это будет сложно)Jovsen
Private Sub Worksheet_Calculate() For x = 4 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(x, 2).Value + Cells(x, 3).Value + Cells(x, 4).Value = 0 Then Rows(x).Hidden = True End If Next x End Sub
[/vba]
Тогда с помощью VBA [vba]
Код
Private Sub Worksheet_Calculate() For x = 4 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(x, 2).Value + Cells(x, 3).Value + Cells(x, 4).Value = 0 Then Rows(x).Hidden = True End If Next x End Sub
Private Sub Worksheet_Change(ByVal Target As Range) Set rR = Range("B2:D2") If Intersect(Target, rR) Is Nothing Then Exit Sub UsedRange.Rows.EntireRow.Hidden = False End Sub
[/vba]
Добавил [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Set rR = Range("B2:D2") If Intersect(Target, rR) Is Nothing Then Exit Sub UsedRange.Rows.EntireRow.Hidden = False End Sub
Jovsen, при скрытии/отображении строк запускается событие Worksheet_Calculate, поэтому, на время выполнения макроса, нужно отключить обработку событий.
И еще заметила, что, если строка на листе Вывод скрыта, а потом для нее внести данные на лист Жировая, то эта строка не отобразится, пока мы что-нибудь не поменяем в B1:E1 на листе Вывод.
Предлагаю при пересчете открывать нужные строки, тогда обработка события change не понадобится: [vba]
Код
Private Sub Worksheet_Calculate() Application.EnableEvents = False For x = 5 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(x, 2).Value + Cells(x, 3).Value + Cells(x, 4).Value + Cells(x, 5).Value = 0 Then Rows(x).Hidden = True Else Rows(x).Hidden = False'Этого у Вас не было End If Next x Application.EnableEvents = True End Sub
[/vba]
Jovsen, при скрытии/отображении строк запускается событие Worksheet_Calculate, поэтому, на время выполнения макроса, нужно отключить обработку событий.
И еще заметила, что, если строка на листе Вывод скрыта, а потом для нее внести данные на лист Жировая, то эта строка не отобразится, пока мы что-нибудь не поменяем в B1:E1 на листе Вывод.
Предлагаю при пересчете открывать нужные строки, тогда обработка события change не понадобится: [vba]
Код
Private Sub Worksheet_Calculate() Application.EnableEvents = False For x = 5 To Cells(Rows.Count, 1).End(xlUp).Row If Cells(x, 2).Value + Cells(x, 3).Value + Cells(x, 4).Value + Cells(x, 5).Value = 0 Then Rows(x).Hidden = True Else Rows(x).Hidden = False'Этого у Вас не было End If Next x Application.EnableEvents = True End Sub
Здравствуйте! Столкнулся с проблемой. Есть таблица, хочу сделать выборку информации по условиям. В желтым цветом помеченных ячейках необходимо получить результат. Спасибо
Здравствуйте! Столкнулся с проблемой. Есть таблица, хочу сделать выборку информации по условиям. В желтым цветом помеченных ячейках необходимо получить результат. Спасибоasas