я работаю со сводными таблицами, и у меня формируется отчёт по мероприятиям (крайний столбец) и данные (значения) отображаются в столбцах. И есть мероприятия, по которым в заданном периоде просто нет данных, и в отчёте отображаются пустые строки. Так вот, как мне решить эту проблему-я думаю, надо написать маааленький макросик. который будет убирать (скрывать) строки с мероприятиями, по которым нет данных (значений) (если по всей строке =0). Можно ли вообще написать макрос, работающий "на" сводной таблице? В примере-как убрать (скрыть) строку с картошкой.
я работаю со сводными таблицами, и у меня формируется отчёт по мероприятиям (крайний столбец) и данные (значения) отображаются в столбцах. И есть мероприятия, по которым в заданном периоде просто нет данных, и в отчёте отображаются пустые строки. Так вот, как мне решить эту проблему-я думаю, надо написать маааленький макросик. который будет убирать (скрывать) строки с мероприятиями, по которым нет данных (значений) (если по всей строке =0). Можно ли вообще написать макрос, работающий "на" сводной таблице? В примере-как убрать (скрыть) строку с картошкой.МыжъБъелая
Если видео не можете посмотреть, пишу словами: открываете фильтр для поля Статьи затрат, ищете слова ПО ЗНАЧЕНИЮ, рядом раскрывающийся список, выбираете НЕ РАВНО 0
Если видео не можете посмотреть, пишу словами: открываете фильтр для поля Статьи затрат, ищете слова ПО ЗНАЧЕНИЮ, рядом раскрывающийся список, выбираете НЕ РАВНО 0Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Pelena, ненене, фильтр предлагает на выбор элементы, а мне нужно чтобы "не равно 0" распространялось одновременно на ВСЕ элементы. Вы говорили про какой-то дополнительный столбец, который можно было бы использовать для фильтровки строк с пустыми данными. Если не сложно, могли бы привести пример? я совсем не представляю. о чём Вы...Спасибо.
Pelena, ненене, фильтр предлагает на выбор элементы, а мне нужно чтобы "не равно 0" распространялось одновременно на ВСЕ элементы. Вы говорили про какой-то дополнительный столбец, который можно было бы использовать для фильтровки строк с пустыми данными. Если не сложно, могли бы привести пример? я совсем не представляю. о чём Вы...Спасибо.МыжъБъелая
Pelena, блин...как вариант...но он мне не нравится...дело в том. что у меня базовая таблица - это 2 тыс. строк и почти до конца возможных буковок вправо - и всё данные, с формулами и без...ещё доп.столбик...дополнительно отслеживать, если появляются новые строки, проставила ли формулу, включила ли эту сумму в фильтр.... Но-спасибо...если больше никак не вывернусь...
Pelena, блин...как вариант...но он мне не нравится...дело в том. что у меня базовая таблица - это 2 тыс. строк и почти до конца возможных буковок вправо - и всё данные, с формулами и без...ещё доп.столбик...дополнительно отслеживать, если появляются новые строки, проставила ли формулу, включила ли эту сумму в фильтр.... Но-спасибо...если больше никак не вывернусь... МыжъБъелая
Pelena, ждать макрописателей-дохлый номер...Их нужно выслеживать, ставить капканы, ловить и не выпускать до тех пор, пока не напишут этот самый макросик...Сами они редко высовывают носы-тёмный народец
Pelena, ждать макрописателей-дохлый номер...Их нужно выслеживать, ставить капканы, ловить и не выпускать до тех пор, пока не напишут этот самый макросик...Сами они редко высовывают носы-тёмный народец МыжъБъелая
Private Sub formating() Dim i As Long, j As Long Dim tbRowStart As Long, tbRowEnd As Long Dim tbColStart As Long, tbColEnd As Long With ActiveSheet If .PivotTables.Count <> 1 Then Exit Sub Application.ScreenUpdating = False Application.EnableEvents = False With .PivotTables.Item(1) On Error Resume Next .TableRange1.EntireRow.Hidden = False tbRowStart = .RowFields(1).LabelRange.Row tbRowEnd = .TableRange1.Row + .TableRange1.Rows.Count - 1
tbColStart = .TableRange1.Column tbColEnd = .TableRange1.Columns.Count + tbColStart - 2 End With For i = tbRowEnd To tbRowStart + 1 Step -1 If Application.Sum(Range(.Cells(i, tbColStart), .Cells(i, tbColEnd))) = 0 Then .Rows(i).Hidden = True Next End With Application.ScreenUpdating = True Application.EnableEvents = True End Sub
Private Sub Worksheet_Calculate() Application.ScreenUpdating = False Call formating Application.ScreenUpdating = True End Sub
[/vba]
[vba]
Код
Option Explicit
Private Sub formating() Dim i As Long, j As Long Dim tbRowStart As Long, tbRowEnd As Long Dim tbColStart As Long, tbColEnd As Long With ActiveSheet If .PivotTables.Count <> 1 Then Exit Sub Application.ScreenUpdating = False Application.EnableEvents = False With .PivotTables.Item(1) On Error Resume Next .TableRange1.EntireRow.Hidden = False tbRowStart = .RowFields(1).LabelRange.Row tbRowEnd = .TableRange1.Row + .TableRange1.Rows.Count - 1
tbColStart = .TableRange1.Column tbColEnd = .TableRange1.Columns.Count + tbColStart - 2 End With For i = tbRowEnd To tbRowStart + 1 Step -1 If Application.Sum(Range(.Cells(i, tbColStart), .Cells(i, tbColEnd))) = 0 Then .Rows(i).Hidden = True Next End With Application.ScreenUpdating = True Application.EnableEvents = True End Sub
Private Sub Worksheet_Calculate() Application.ScreenUpdating = False Call formating Application.ScreenUpdating = True End Sub
RAN, ой..мамуся моя...и что с этим делать?! Я так понимаю, Вы как раз макрописатель.. ууу....спасибо....только я с этим как мартышко и очки)) подскажите, на какое место "надевать")) Ничего не получаицо....А макрос "тяжёленький"? если в мой первоначальный файл его вставить, больше 100kb получится? посмотреть бы, как оно выглядит в натуре..а?..
RAN, ой..мамуся моя...и что с этим делать?! Я так понимаю, Вы как раз макрописатель.. ууу....спасибо....только я с этим как мартышко и очки)) подскажите, на какое место "надевать")) Ничего не получаицо....А макрос "тяжёленький"? если в мой первоначальный файл его вставить, больше 100kb получится? посмотреть бы, как оно выглядит в натуре..а?.. МыжъБъелая
Сообщение отредактировал МыжъБъелая - Пятница, 14.02.2014, 15:29