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

Вход

Регистрация

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

 

= Мир MS Excel/Многоуровневая групировка ячеек - Мир MS Excel

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

Excel 2010
помогите пожалуйста переделать макрос по многоуровневой групировке ячеек с добавлением промежуточных итогов
[vba]
Код
Sub GroopBlock()
Dim Col_ As Integer
Dim Str_ As Integer
    Dim i As Integer
    Dim j As Integer
    i = 0
    While ActiveSheet.Cells(Str_ + i, Col_).Value <> ""
       If ActiveSheet.Cells(Str_ + i + 1, Col_).Value = "" Then
          For j = Col_ + 1 To 7
             If ActiveSheet.Cells(Str_ + i + 1, j).Value <> "" Then i = i + GroopBlock(j, Str_ + i + 1)
                Exit For
             End If
          Next j
       End If
      i = i + 1
  Wend
  Range(Cells(Str_, 1), Cells(Str_ + i - 1, 1)).EntireRow.Group
  GroopBlock = i
  End Sub
[/vba]
в прикрепление пример файл для групировки
К сообщению приложен файл: 8555512.xls (36.0 Kb)
 
Ответить
Сообщениепомогите пожалуйста переделать макрос по многоуровневой групировке ячеек с добавлением промежуточных итогов
[vba]
Код
Sub GroopBlock()
Dim Col_ As Integer
Dim Str_ As Integer
    Dim i As Integer
    Dim j As Integer
    i = 0
    While ActiveSheet.Cells(Str_ + i, Col_).Value <> ""
       If ActiveSheet.Cells(Str_ + i + 1, Col_).Value = "" Then
          For j = Col_ + 1 To 7
             If ActiveSheet.Cells(Str_ + i + 1, j).Value <> "" Then i = i + GroopBlock(j, Str_ + i + 1)
                Exit For
             End If
          Next j
       End If
      i = i + 1
  Wend
  Range(Cells(Str_, 1), Cells(Str_ + i - 1, 1)).EntireRow.Group
  GroopBlock = i
  End Sub
[/vba]
в прикрепление пример файл для групировки

Автор - niru1980
Дата добавления - 02.06.2014 в 11:09
Alex_ST Дата: Понедельник, 02.06.2014, 23:27 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
1. В примере покажите не только "как есть", но и на другом листе "как надо" с теми же данными. Да и пояснения не помешали бы. Во избежание недоразумений, так сказать :)
2. Выложенный Вами макрос содержит ошибки и в таком виде работать не может. По-хорошему Вам бы лучше обратиться туда, откуда Вы брали первоисточник до того, как его кто-то искалечил.
Или это сразу был нежизнеспособный "недоносок-выкидыш"? Тогда см.п.1 выше.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение1. В примере покажите не только "как есть", но и на другом листе "как надо" с теми же данными. Да и пояснения не помешали бы. Во избежание недоразумений, так сказать :)
2. Выложенный Вами макрос содержит ошибки и в таком виде работать не может. По-хорошему Вам бы лучше обратиться туда, откуда Вы брали первоисточник до того, как его кто-то искалечил.
Или это сразу был нежизнеспособный "недоносок-выкидыш"? Тогда см.п.1 выше.

Автор - Alex_ST
Дата добавления - 02.06.2014 в 23:27
niru1980 Дата: Вторник, 03.06.2014, 11:00 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
1. В примере покажите не только "как есть", но и на другом листе "как надо" с теми же данными. Да и пояснения не помешали бы. Во избежание недоразумений, так сказать
2. Выложенный Вами макрос содержит ошибки и в таком виде работать не может. По-хорошему Вам бы лучше обратиться туда, откуда Вы брали первоисточник до того, как его кто-то искалечил.
Или это сразу был нежизнеспособный "недоносок-выкидыш"? Тогда см.п.1 выше.

1 прикладываю файл лист 1 как есть лист 2 как надо
2 макрос найден в инете сразу был нежизнеспособный
 
Ответить
Сообщение
1. В примере покажите не только "как есть", но и на другом листе "как надо" с теми же данными. Да и пояснения не помешали бы. Во избежание недоразумений, так сказать
2. Выложенный Вами макрос содержит ошибки и в таком виде работать не может. По-хорошему Вам бы лучше обратиться туда, откуда Вы брали первоисточник до того, как его кто-то искалечил.
Или это сразу был нежизнеспособный "недоносок-выкидыш"? Тогда см.п.1 выше.

1 прикладываю файл лист 1 как есть лист 2 как надо
2 макрос найден в инете сразу был нежизнеспособный

Автор - niru1980
Дата добавления - 03.06.2014 в 11:00
niru1980 Дата: Вторник, 03.06.2014, 11:01 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
прикладываю файл
К сообщению приложен файл: 2279865.xls (43.0 Kb)
 
Ответить
Сообщениеприкладываю файл

Автор - niru1980
Дата добавления - 03.06.2014 в 11:01
Alex_ST Дата: Вторник, 03.06.2014, 11:29 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Да и пояснения не помешали бы.
я не Нострадамус, конечно, но угадал когда это попросил :)
Если в Вашем файле-примере что-то кому-то и понятно, то это точно не я :'(
Нет даже заголовков столбцов и потому не ясен принцип подбора групп данных. Особенно - в столбце F, где у Вас полная мешанина.
Чем-то напоминает, конечно, сводную таблицу…
Я в них не спец, да и не достаточно свободного времени чтобы углублённо разбираться. Извините, но я пас.
Может быть кто-нибудь ещё посмотрит.



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Да и пояснения не помешали бы.
я не Нострадамус, конечно, но угадал когда это попросил :)
Если в Вашем файле-примере что-то кому-то и понятно, то это точно не я :'(
Нет даже заголовков столбцов и потому не ясен принцип подбора групп данных. Особенно - в столбце F, где у Вас полная мешанина.
Чем-то напоминает, конечно, сводную таблицу…
Я в них не спец, да и не достаточно свободного времени чтобы углублённо разбираться. Извините, но я пас.
Может быть кто-нибудь ещё посмотрит.

Автор - Alex_ST
Дата добавления - 03.06.2014 в 11:29
niru1980 Дата: Вторник, 03.06.2014, 12:11 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
я не Нострадамус, конечно, но угадал когда это попросил
Если в Вашем файле-примере что-то кому-то и понятно, то это точно не я
Нет даже заголовков столбцов и потому не ясен принцип подбора групп данных. Особенно - в столбце F, где у Вас полная мешанина.
Чем-то напоминает, конечно, сводную таблицу…
Я в них не спец, да и не достаточно свободного времени чтобы углублённо разбираться. Извините, но я пас.
Может быть кто-нибудь ещё посмотрит.

в таблице первые 5 столбцов это размешения по которым нужно сгрупировать и расчитать промежуточные итоги
в столбце F листа 2(как должно получиться) указаны промежуточные итоги по уровням вложености(они указаны там чтоб в дальнейшем первые 5 столбцов скрыть)
 
Ответить
Сообщение
я не Нострадамус, конечно, но угадал когда это попросил
Если в Вашем файле-примере что-то кому-то и понятно, то это точно не я
Нет даже заголовков столбцов и потому не ясен принцип подбора групп данных. Особенно - в столбце F, где у Вас полная мешанина.
Чем-то напоминает, конечно, сводную таблицу…
Я в них не спец, да и не достаточно свободного времени чтобы углублённо разбираться. Извините, но я пас.
Может быть кто-нибудь ещё посмотрит.

в таблице первые 5 столбцов это размешения по которым нужно сгрупировать и расчитать промежуточные итоги
в столбце F листа 2(как должно получиться) указаны промежуточные итоги по уровням вложености(они указаны там чтоб в дальнейшем первые 5 столбцов скрыть)

Автор - niru1980
Дата добавления - 03.06.2014 в 12:11
niru1980 Дата: Вторник, 03.06.2014, 13:08 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
нашел в инете еще один макрос подскажите пожалуйста как его настроить под мой документ pray pray
[vba]
Код
Sub Multilevel_Group()
Dim level As Single, i As Single
Dim start As Single, LastRow As Single
Const FIRST_ROW = 2         'это будет вашей первой строчкой группируемого списка
Const FIRST_COLUMN = 1      'а это – первым столбиком группируемого списка
Const NUMBER_OF_LEVELS = 5  'здесь прописано количество уровней
Set ws = ActiveSheet
ws.UsedRange.ClearOutline   'убираем все группировки на листе
LastRow = WorksheetFunction.Match("Конец", ws.Columns(FIRST_COLUMN), 0) 'а таким образом мы определяем номер табличной последней строки
'затем мы проходим  по всем уровням
For level = 1 To NUMBER_OF_LEVELS
start = 0
For i = FIRST_ROW To LastRow
'здесь вам понадобится номер строки, если нашли начальную ячейку группы
If ws.Cells(i, level) <> "" And WorksheetFunction.CountA(ws.Cells(i + 1, FIRST_COLUMN).Resize(1, level)) = 0 Then start = i
'а здесь понадобится конец группы
If WorksheetFunction.CountA(ws.Cells(i + 1, FIRST_COLUMN).Resize(1, level)) > 0 And start > 0 Then
ws.Rows(start + 1 & ":" & i).Group
start = 0
End If
Next i
Next level
End Sub
[/vba]
 
Ответить
Сообщениенашел в инете еще один макрос подскажите пожалуйста как его настроить под мой документ pray pray
[vba]
Код
Sub Multilevel_Group()
Dim level As Single, i As Single
Dim start As Single, LastRow As Single
Const FIRST_ROW = 2         'это будет вашей первой строчкой группируемого списка
Const FIRST_COLUMN = 1      'а это – первым столбиком группируемого списка
Const NUMBER_OF_LEVELS = 5  'здесь прописано количество уровней
Set ws = ActiveSheet
ws.UsedRange.ClearOutline   'убираем все группировки на листе
LastRow = WorksheetFunction.Match("Конец", ws.Columns(FIRST_COLUMN), 0) 'а таким образом мы определяем номер табличной последней строки
'затем мы проходим  по всем уровням
For level = 1 To NUMBER_OF_LEVELS
start = 0
For i = FIRST_ROW To LastRow
'здесь вам понадобится номер строки, если нашли начальную ячейку группы
If ws.Cells(i, level) <> "" And WorksheetFunction.CountA(ws.Cells(i + 1, FIRST_COLUMN).Resize(1, level)) = 0 Then start = i
'а здесь понадобится конец группы
If WorksheetFunction.CountA(ws.Cells(i + 1, FIRST_COLUMN).Resize(1, level)) > 0 And start > 0 Then
ws.Rows(start + 1 & ":" & i).Group
start = 0
End If
Next i
Next level
End Sub
[/vba]

Автор - niru1980
Дата добавления - 03.06.2014 в 13:08
RAN Дата: Вторник, 03.06.2014, 13:19 | Сообщение № 8
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
.
К сообщению приложен файл: 7041901.xls (56.5 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение.

Автор - RAN
Дата добавления - 03.06.2014 в 13:19
niru1980 Дата: Вторник, 03.06.2014, 13:39 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
RAN, а как ты это получил
 
Ответить
СообщениеRAN, а как ты это получил

Автор - niru1980
Дата добавления - 03.06.2014 в 13:39
RAN Дата: Вторник, 03.06.2014, 14:29 | Сообщение № 10
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Это сводная таблица. Стандартный инструмент Excel. :D


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеЭто сводная таблица. Стандартный инструмент Excel. :D

Автор - RAN
Дата добавления - 03.06.2014 в 14:29
niru1980 Дата: Вторник, 03.06.2014, 16:01 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 38
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Это сводная таблица. Стандартный инструмент Excel

Спасибо за подсказку
 
Ответить
Сообщение
Это сводная таблица. Стандартный инструмент Excel

Спасибо за подсказку

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

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