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

Вход

Регистрация

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

 

= Мир MS Excel/Многоуровневая группировка (макрос) - Мир MS Excel

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

Excel 2019
Добрый день.
Очень нужна ваша помощь. Нужно сгруппировать свод, чтобы можно было нажать на плюс - столбец развернулся - еще плюс - второй столбец развернулся.
Пример во вложении. Нужно сгруппировать первый столбец до итогов, и второй столбец до итогов.
Примерно так:
-Кластер 1 Итог
-Кластер 2 Итог
Нажимаем на плюс (внутри кластера):
-БП итог
-Б.П+Макароны Итог
-Бум.пр. Итог
и т.д.
Нажимаем еще на плюс:
номера и заводы видно

Как-то так. Помогите написать макрос для этого.
По факту строк будет около 150000 (если это важно для макроса) Кол-во столбцов как в примере
К сообщению приложен файл: 1377038.xlsm (31.8 Kb)
 
Ответить
СообщениеДобрый день.
Очень нужна ваша помощь. Нужно сгруппировать свод, чтобы можно было нажать на плюс - столбец развернулся - еще плюс - второй столбец развернулся.
Пример во вложении. Нужно сгруппировать первый столбец до итогов, и второй столбец до итогов.
Примерно так:
-Кластер 1 Итог
-Кластер 2 Итог
Нажимаем на плюс (внутри кластера):
-БП итог
-Б.П+Макароны Итог
-Бум.пр. Итог
и т.д.
Нажимаем еще на плюс:
номера и заводы видно

Как-то так. Помогите написать макрос для этого.
По факту строк будет около 150000 (если это важно для макроса) Кол-во столбцов как в примере

Автор - Nikonka89
Дата добавления - 23.07.2020 в 16:13
Hugo Дата: Четверг, 23.07.2020, 16:32 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3253
Репутация: 707 ±
Замечаний: 0% ±

2019
Включаете запись макроса, делаете группировку, выключаете запись.
Получаете для начала что-то типа такого:
[vba]
Код

Sub Макрос2()
'
' Макрос2 Макрос
'

'
    Rows("2:76").Rows.Group
    Rows("78:80").Rows.Group
    Rows("2:167").Rows.Group
End Sub
[/vba]
Это я уже чуть причесал, и это работает.
Т.е. далее (вернув всё на исходную) нужно пройтись циклом по ячейкам, и подставлять вместо этих номеров строк найденные, ну и продолжать так дальше.

Вот группирует как надо:
[vba]
Код

Sub tt()
    Dim st1&, st2&, i&

    st1 = 2
    st2 = 2
    
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row

        If InStr(Cells(i, 1), " Итог") Then
            Rows(st1 & ":" & i - 1).Rows.Group
            st1 = i + 1
        End If

        If InStr(Cells(i, 2), " Итог") Then
            Rows(st2 & ":" & i - 1).Rows.Group
            st2 = i + 1
            If InStr(Cells(i + 1, 1), " Итог") Then st2 = st2 + 1
        End If

    Next

End Sub
[/vba]


excel@nxt.ru
webmoney: E265281470651 Z422237915069


Сообщение отредактировал Hugo - Четверг, 23.07.2020, 17:32
 
Ответить
СообщениеВключаете запись макроса, делаете группировку, выключаете запись.
Получаете для начала что-то типа такого:
[vba]
Код

Sub Макрос2()
'
' Макрос2 Макрос
'

'
    Rows("2:76").Rows.Group
    Rows("78:80").Rows.Group
    Rows("2:167").Rows.Group
End Sub
[/vba]
Это я уже чуть причесал, и это работает.
Т.е. далее (вернув всё на исходную) нужно пройтись циклом по ячейкам, и подставлять вместо этих номеров строк найденные, ну и продолжать так дальше.

Вот группирует как надо:
[vba]
Код

Sub tt()
    Dim st1&, st2&, i&

    st1 = 2
    st2 = 2
    
    For i = 2 To Range("A" & Rows.Count).End(xlUp).Row

        If InStr(Cells(i, 1), " Итог") Then
            Rows(st1 & ":" & i - 1).Rows.Group
            st1 = i + 1
        End If

        If InStr(Cells(i, 2), " Итог") Then
            Rows(st2 & ":" & i - 1).Rows.Group
            st2 = i + 1
            If InStr(Cells(i + 1, 1), " Итог") Then st2 = st2 + 1
        End If

    Next

End Sub
[/vba]

Автор - Hugo
Дата добавления - 23.07.2020 в 16:32
Nikonka89 Дата: Суббота, 25.07.2020, 08:40 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 56
Репутация: 0 ±
Замечаний: 20% ±

Excel 2019
Все получилось. Спасибо большое!
 
Ответить
СообщениеВсе получилось. Спасибо большое!

Автор - Nikonka89
Дата добавления - 25.07.2020 в 08:40
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Многоуровневая группировка (макрос) (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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