С Новым годом! Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.95/321: Рейтинг темы: голосов - 321, средняя оценка - 4.95
0 / 0 / 0
Регистрация: 25.04.2006
Сообщений: 5
1

Группировка строк в Excel (макрос)

25.04.2006, 19:11. Показов 62027. Ответов 25
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, пожалуйста, я так устала вручную группировать строки. Как написать макрос, чтобы в таблице EXCEL строки автоматом группировались по одинаковым названиям в первом столбце. Т.е. сбоку слева появлялся "плюсик" и можно было группу свернуть или развернуть.

В первом столбце названия групп повторяются, а во втором столбце уже идут точные названия, т.е. в первом столбце ткань, а во втором м.б. и драп и ситец. Я хочу сделать группу по первому столбцу ткань.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.04.2006, 19:11
Ответы с готовыми решениями:

Макрос в VBA, копирование строк указанное количество раз, и группировка
Добрый день, помогите пожалуйста с макросом, который при вводе в определенную ячейку, какой либо...

Макрос сортировки строк в Excel
Добрый вечер, помогите пожалуйста с макросом в excel 2010. Есть таблица шириной в 6 столбцев (A-F)...

Макрос для фильтрации строк в Excel.
Необходимо написать макрос в Worde Который должен как в екселя фильровать строки (результат...

Макрос для фильтрации строк в Excel
Помогите написать макрос в Worde Который должен как в екселя фильровать строки (результат...

25
3 / 3 / 0
Регистрация: 08.09.2011
Сообщений: 111
25.04.2006, 20:27 2
А нужен ли макрос, если есть встроенный инструмент?
Data -> Subtotals... далее по инструкции....
0
0 / 0 / 0
Регистрация: 25.04.2006
Сообщений: 5
25.04.2006, 20:37  [ТС] 3
Спасибо буду искать, что это такое Если у ВАс есть возможность можно чуть подробнее...
0
3 / 3 / 0
Регистрация: 08.09.2011
Сообщений: 111
25.04.2006, 20:53 4
По-русски это называется консолидация...
Вот здесь можно почитать:

http://www.firststeps.ru/
- MS Office
- Шаг 65 - Попробуем консолидацию
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
25.04.2006, 21:03 5
lullul,

Vi mozhete poprobovat' sovet Tsveta. Vot vam esche odin: idite v menu [bold]Data/Pivot Table[/bold] ...
V techenie 20 sekund sdelal vashu zadachu metodom Drag and Drop...

vladconn

0
0 / 0 / 0
Регистрация: 25.04.2006
Сообщений: 5
25.04.2006, 21:34  [ТС] 6
Про консолидацию прочитала спасибо, но мне не надо сумировать и т.д. Мне надо просто огромную таблицу привести в более сжатый вид. Одинаковые позиции по первому столбцу сгруппировать так, чтобы сбоку слева появлялся "плюсик" и можно было группу свернуть или развернуть. Чтобы клиент мог сначала выбрать нужную группу в списке и только затем с помощью плюсика её развернуть и искать подробнее что ему надо.

Я это обычно делаю в ручную с помощью меню Данные-группа и структура-группировать. Очень хочу эту процедуру автоматизировать
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
25.04.2006, 22:01 7
lullul,

Esche variant:

MSHFLEXGRID i OLEDB data control!

MSHFLEXGRID kak raz dlya vashej zadachi.

vladconn
0
0 / 0 / 0
Регистрация: 25.04.2006
Сообщений: 5
25.04.2006, 22:20  [ТС] 8
Всем спасибо, буду стараться
0
6 / 6 / 3
Регистрация: 17.10.2007
Сообщений: 1,119
25.04.2006, 22:23 9
A, chto-to vrode etogo:

Visual Basic
1
2
3
4
5
6
7
8
Sub Macro1()
 
    Range("A2:C5").Select 'tkan', vid tkani, kol-vo
    Selection.Rows.Group
    Range("A7:C9").Select 'Kamen', nazvanie kamnya, kol-vo
    Selection.Rows.Group
 
End Sub
vladconn
0
22 / 5 / 1
Регистрация: 05.09.2010
Сообщений: 370
26.04.2006, 10:41 10
Выделить ту часть листа где необходима массовая группировка и выполнить макрос:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Группировка()
  ' вначале выдели строки для массовой группировки
  x = 1 ' номер колонки
  Dim rng As Range
  Set rng = Selection.EntireRow
  y = rng.Row
  yend = y + rng.Rows.Count - 1
  mes = "Выполнить массовую группировку" & vbCr & _
      "со строки " & y & " по строку " & yend & "?"
  If MsgBox(mes, vbQuestion + vbOKCancel, "") = vbCancel Then End
  ybeg = y
  ActiveSheet.Outline.SummaryRow = xlAbove
  For y = y To yend
    If Cells(y, x) <> Cells(y + 1, x) _
    Or y = yend Then
      If ybeg + 1 <= y Then Rows(ybeg + 1 & ":" & y).Rows.Group
      ybeg = y + 1
    End If
  Next
  MsgBox "Готово", vbInformation, ""
End Sub
0
rank1
30.04.2006, 23:30 11
У меня тут возникла сходная задачка - нужно было в зависимости от уровня группы в колонке группировать строки. Первое что пришло в голову:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Option Explicit
Sub grp() 'Группировка
 On Error GoTo errH
 Dim h: Set h = New Scripting.dictionary
 Dim x As Range
 Set x = Selection.EntireColumn.Cells.SpecialCells(xlCellTypeConstants)
    Dim i As Long, j As Long, c As Range
    For i = 1 To 10
      For Each c In x.Cells
         c.Select
         For j = i To 10
            DoEvents
            If c.Value = j Then
                 If IsEmpty(h(i)) Then
                    Set h(i) = c
                 Else
                    Set h(i) = Union(h(i), c)
                 End If
            End If
         Next j
      Next c
    Next i
 Dim k
 Dim a As Range
 For Each k In h.Keys
  For Each a In h(k).Areas
   DoEvents
   a.Rows.Group
  Next a
 Next k
 If 0 Then
errH:
   MsgBox Err.Description
 End If
 Set h = Nothing
End Sub
Sub ugp() 'Разгруппировка
On Error Resume Next
   Rows.Ungroup
   Rows.Ungroup
   Rows.Ungroup
   Rows.Ungroup
   Rows.Ungroup
   Rows.Ungroup
   Rows.Ungroup
   Rows.Ungroup
End Sub
rank1
30.04.2006, 23:31 12
Для работы необходимо подключить scrrun.dll - для Dictionary
rank1
30.04.2006, 23:33 13
...и курсор должен стоять в той колонке где уровни вложенности указаны.
Сумрак
01.05.2006, 22:11 14
Сначала отсортировать придется для группировки...
22 / 5 / 1
Регистрация: 05.09.2010
Сообщений: 370
02.05.2006, 11:11 15
Здесь еще пример группировки, но по номерам параграфа...

http://relib.com/forums/Topic846792-11-1.aspx
0
0 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 14
21.02.2014, 15:24 16
Доброго дня! Мне нужен макрос чтобы из разноцветных строк группировал только бесцветные. Кто-нибудь может мне помочь в этом.
0
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
21.02.2014, 15:31 17
Артем 1981, приложите пример.
1
0 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 14
03.04.2014, 12:50 18
Приложил пример (2 вкладки). Макрос должен делать из таблицы во вкладке "до", таблицу такую как во вкладке "после", то есть группировать только строки без выделения цветом.
Вложения
Тип файла: xls Пример.xls (41.0 Кб, 200 просмотров)
0
15153 / 6426 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
03.04.2014, 13:41 19
Артем 1981, почему группировка "вниз"? Строки 8,9 вроде относятся к 7?
0
0 / 0 / 0
Регистрация: 21.02.2014
Сообщений: 14
03.04.2014, 14:48 20
Да совершенно верно п.8,9 относятся к п.7, это у меня просто настройка такая.
0
03.04.2014, 14:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2014, 14:48
Помогаю со студенческими работами здесь

Группирование строк в EXCEL (макрос) / VBA
Ребят, добрый день!! Помогите, пожалуйста,написать макрос, чтобы в таблице EXCEL строки автоматом...

Макрос сортировки строк в Excel 2003
Здравствуйте. Возник срочный вопрос. Как решить не знаю. Стандартным методом Экселя не...

Макрос: удаление строк в таблице Excel
День добрый! Возникла такая задачка: В последнем столбце таблице будет кнопка, на которой будет...

Макрос на удаление строк с конктретным Outlinelevel (excel)
Привет всем. Проблема заключается в том что имеется огромный массив данных excel (300000 строк)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru