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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос на раскрыть/свернуть структуру отчета - Мир MS Excel

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

Excel 2013
Доброго времени суток!

Делаю сводную с огромной структурой отчета и разворачивать мышкой на каждом уровне каждого заголовка очень неудобно.
В отчете уровней более 10-ти и значения уровней не такие юзер френдли, как в примере, поэтому переключаться на нужный уровень, это как сальто с тройным пируэтом в воздухе после каждой фильтрации в отчете...

Очень нужен макрос на кнопку развернуть/свернуть по уровням структуры. Вижу три варианта решения.
1) Выбор уровня из раскрывающего списка
2) Две кнопки (одна раскрывает на 1 уровень, другая сворачивает на 1 уровень)
3) Через счетчик аналогично 2-ому варианту. Не представляю правда как, но это было бы супер мощным решением.

Ниже загрузил файл-пример, там собственно пример таблицы и там же реализован 1 вариант, который работает очень криво.
Также в файле добавил кнопки для других вариантов, чтобы было нагляднее.
Если у вас есть возможность, помочь с решением, буду невероятно признателен.

По решению приоритетнее 2 или 3 вариант. Хотя если реализовать их сложно, то правке кода 1-ого варианта, тоже буду очень рад.
Очень надеюсь на Вашу помощь.

Ниже привожу пример структуры отчета и кода на раскрыть/свернуть через выпадающий список, который представлен в файле.
[vba]
Код
Sub Кнопка2_Щелчок()
      
     CurrLevel = ThisWorkbook.Worksheets("Лист1").Range("CurrentLevel")
      
     Number = ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields(CurrLevel).PivotItems.Count
      
     For i = 1 To Number
          
         CurrNextLevel = ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields(CurrLevel).PivotItems(i)
         ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields(CurrLevel).PivotItems(CurrNextLevel).ShowDetail = True
      
     Next i

End Sub
[/vba]

К сообщению приложен файл: -3-.xlsm (33.0 Kb)
 
Ответить
СообщениеДоброго времени суток!

Делаю сводную с огромной структурой отчета и разворачивать мышкой на каждом уровне каждого заголовка очень неудобно.
В отчете уровней более 10-ти и значения уровней не такие юзер френдли, как в примере, поэтому переключаться на нужный уровень, это как сальто с тройным пируэтом в воздухе после каждой фильтрации в отчете...

Очень нужен макрос на кнопку развернуть/свернуть по уровням структуры. Вижу три варианта решения.
1) Выбор уровня из раскрывающего списка
2) Две кнопки (одна раскрывает на 1 уровень, другая сворачивает на 1 уровень)
3) Через счетчик аналогично 2-ому варианту. Не представляю правда как, но это было бы супер мощным решением.

Ниже загрузил файл-пример, там собственно пример таблицы и там же реализован 1 вариант, который работает очень криво.
Также в файле добавил кнопки для других вариантов, чтобы было нагляднее.
Если у вас есть возможность, помочь с решением, буду невероятно признателен.

По решению приоритетнее 2 или 3 вариант. Хотя если реализовать их сложно, то правке кода 1-ого варианта, тоже буду очень рад.
Очень надеюсь на Вашу помощь.

Ниже привожу пример структуры отчета и кода на раскрыть/свернуть через выпадающий список, который представлен в файле.
[vba]
Код
Sub Кнопка2_Щелчок()
      
     CurrLevel = ThisWorkbook.Worksheets("Лист1").Range("CurrentLevel")
      
     Number = ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields(CurrLevel).PivotItems.Count
      
     For i = 1 To Number
          
         CurrNextLevel = ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields(CurrLevel).PivotItems(i)
         ActiveSheet.PivotTables("СводнаяТаблица1").PivotFields(CurrLevel).PivotItems(CurrNextLevel).ShowDetail = True
      
     Next i

End Sub
[/vba]


Автор - Dmitry_spb
Дата добавления - 06.08.2015 в 06:55
miver Дата: Четверг, 06.08.2015, 11:33 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 190
Репутация: 37 ±
Замечаний: 0% ±

Excel 2010
Dmitry_spb, А чем Вас стандартный вариант не устраивает
Правая кнопка мыши
 
Ответить
СообщениеDmitry_spb, А чем Вас стандартный вариант не устраивает
Правая кнопка мыши

Автор - miver
Дата добавления - 06.08.2015 в 11:33
Dmitry_spb Дата: Четверг, 06.08.2015, 12:57 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Miver, исходные данные находятся в модели данных pover pivot, поэтому контекстное меню выглядит иначе.

Как Вы можете заметить в контекстном меню отсутствует уровень структуры при Развернуть/Свернуть, аналогично отсутствующей возможности группировки.
При возможности я бы с самого начала загрузил файл аналогичный оригиналу. Но это невозможно, т.к. при использовании модели данных PoverPivot, независимо от кол-ва строк и столбцов внутри, файл будет превышать допустимый размер в 100кб.
В общем, обходными путями честно не получится. В данном случае нужен именно макрос.

Привожу пример контекстного меню в моем случае.
 
Ответить
СообщениеMiver, исходные данные находятся в модели данных pover pivot, поэтому контекстное меню выглядит иначе.

Как Вы можете заметить в контекстном меню отсутствует уровень структуры при Развернуть/Свернуть, аналогично отсутствующей возможности группировки.
При возможности я бы с самого начала загрузил файл аналогичный оригиналу. Но это невозможно, т.к. при использовании модели данных PoverPivot, независимо от кол-ва строк и столбцов внутри, файл будет превышать допустимый размер в 100кб.
В общем, обходными путями честно не получится. В данном случае нужен именно макрос.

Привожу пример контекстного меню в моем случае.

Автор - Dmitry_spb
Дата добавления - 06.08.2015 в 12:57
KSV Дата: Четверг, 06.08.2015, 14:24 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 770
Репутация: 255 ±
Замечаний: 0% ±

Excel 2013
Добрый день!
Попробуйте вар.1 и вар.3
К сообщению приложен файл: 6458423.xlsm (33.9 Kb)


KSV.VBA@gmail.com
Яндекс.Деньги: 410011921213333


Сообщение отредактировал KSV - Четверг, 06.08.2015, 20:31
 
Ответить
СообщениеДобрый день!
Попробуйте вар.1 и вар.3

Автор - KSV
Дата добавления - 06.08.2015 в 14:24
Dmitry_spb Дата: Четверг, 06.08.2015, 16:27 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 12
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
KSV,

Остановился на варианте 3, работает великолепно yahoo

Спасибо огромное за помощь!
 
Ответить
СообщениеKSV,

Остановился на варианте 3, работает великолепно yahoo

Спасибо огромное за помощь!

Автор - Dmitry_spb
Дата добавления - 06.08.2015 в 16:27
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос на раскрыть/свернуть структуру отчета (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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