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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос, который создаст структуру (сгруппирует строки). - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос, который создаст структуру (сгруппирует строки). (Иное/Other)
Макрос, который создаст структуру (сгруппирует строки).
ZORRO2005 Дата: Понедельник, 20.04.2015, 00:19 | Сообщение № 1
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Друзья, помогите с макросом, который создаст структуру по меткам в столбце A.
К сообщению приложен файл: 3726993.xls (27.0 Kb)


Сообщение отредактировал ZORRO2005 - Понедельник, 20.04.2015, 00:21
 
Ответить
СообщениеДрузья, помогите с макросом, который создаст структуру по меткам в столбце A.

Автор - ZORRO2005
Дата добавления - 20.04.2015 в 00:19
AlexM Дата: Понедельник, 20.04.2015, 02:39 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4507
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Можно единицы не ставить[vba]
Код
Sub Макрос()
Dim i As Long, n As Long
For i = 2 To Range("C" & Rows.Count).End(xlUp).Row
If Cells(i, 3) = "" Or Cells(i, 3) = "Месяц" Then
n = IIf(Cells(i + 1, 3).End(xlDown).Row = Rows.Count, i + 1, Cells(i + 1, 3).End(xlDown).Row)
Range(Cells(i + 1, 3), Cells(n, 3)).Rows.Group
End If
Next i
End Sub
[/vba]
К сообщению приложен файл: 3726993_1.xls (36.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеМожно единицы не ставить[vba]
Код
Sub Макрос()
Dim i As Long, n As Long
For i = 2 To Range("C" & Rows.Count).End(xlUp).Row
If Cells(i, 3) = "" Or Cells(i, 3) = "Месяц" Then
n = IIf(Cells(i + 1, 3).End(xlDown).Row = Rows.Count, i + 1, Cells(i + 1, 3).End(xlDown).Row)
Range(Cells(i + 1, 3), Cells(n, 3)).Rows.Group
End If
Next i
End Sub
[/vba]

Автор - AlexM
Дата добавления - 20.04.2015 в 02:39
pabchek Дата: Понедельник, 20.04.2015, 10:23 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
А можно этот макрос модифицировать чтобы не ставить маркеры, а аналогично группировать непустые ячейки в колонке "С", а группировка была сверху группы?


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
СообщениеА можно этот макрос модифицировать чтобы не ставить маркеры, а аналогично группировать непустые ячейки в колонке "С", а группировка была сверху группы?

Автор - pabchek
Дата добавления - 20.04.2015 в 10:23
pabchek Дата: Понедельник, 20.04.2015, 10:27 | Сообщение № 4
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
Не прочитал, что маркеры и так можно не ставить((((. Остался вопрос про группировку сверху


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
СообщениеНе прочитал, что маркеры и так можно не ставить((((. Остался вопрос про группировку сверху

Автор - pabchek
Дата добавления - 20.04.2015 в 10:27
pabchek Дата: Понедельник, 20.04.2015, 10:42 | Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
Пример в файле
К сообщению приложен файл: 8070618.xls (44.5 Kb)


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
СообщениеПример в файле

Автор - pabchek
Дата добавления - 20.04.2015 в 10:42
AlexM Дата: Понедельник, 20.04.2015, 11:05 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4507
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Жуткие изменения кода :)
[vba]
Код
Sub Макрос()
Dim i As Long, n As Long
For i = 2 To Range("C" & Rows.Count).End(xlUp).Row
If Cells(i, 3) = "" Then
n = IIf(Cells(i + 1, 3).End(xlDown).Row = Rows.Count, i + 1, Cells(i + 1, 3).End(xlDown).Row)
Range(Cells(i + 1, 3), Cells(n, 3)).Rows.Group
End If
Next i
End Sub
[/vba]
К сообщению приложен файл: 8070618_1.xls (43.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеЖуткие изменения кода :)
[vba]
Код
Sub Макрос()
Dim i As Long, n As Long
For i = 2 To Range("C" & Rows.Count).End(xlUp).Row
If Cells(i, 3) = "" Then
n = IIf(Cells(i + 1, 3).End(xlDown).Row = Rows.Count, i + 1, Cells(i + 1, 3).End(xlDown).Row)
Range(Cells(i + 1, 3), Cells(n, 3)).Rows.Group
End If
Next i
End Sub
[/vba]

Автор - AlexM
Дата добавления - 20.04.2015 в 11:05
pabchek Дата: Понедельник, 20.04.2015, 11:12 | Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 931
Репутация: 218 ±
Замечаний: 0% ±

Excel 2007
Спасибо большое!
Я, наверно, дольше искал изменения, чем вы их делали :)
Но для меня и они пока недоступны - заняться макросами только планирую)))


"Учиться, учиться и еще раз учиться!"
WM: R399923528092
 
Ответить
СообщениеСпасибо большое!
Я, наверно, дольше искал изменения, чем вы их делали :)
Но для меня и они пока недоступны - заняться макросами только планирую)))

Автор - pabchek
Дата добавления - 20.04.2015 в 11:12
ZORRO2005 Дата: Понедельник, 20.04.2015, 11:28 | Сообщение № 8
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
В ячейках может быть что хочешь.
Ориентируемся на 1 в столбце A.
 
Ответить
СообщениеВ ячейках может быть что хочешь.
Ориентируемся на 1 в столбце A.

Автор - ZORRO2005
Дата добавления - 20.04.2015 в 11:28
AlexM Дата: Понедельник, 20.04.2015, 11:38 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4507
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Тогда так
[vba]
Код
Sub Макрос()
Dim i As Long, n As Long
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(i, 1) = "" Then
n = IIf(Cells(i + 1, 1).End(xlDown).Row = Rows.Count, i + 1, Cells(i + 1, 1).End(xlDown).Row)
Range(Cells(i + 1, 1), Cells(n, 1)).Rows.Group
End If
Next i
End Sub
[/vba]
К сообщению приложен файл: 3726993_2.xls (36.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеТогда так
[vba]
Код
Sub Макрос()
Dim i As Long, n As Long
For i = 2 To Range("A" & Rows.Count).End(xlUp).Row
If Cells(i, 1) = "" Then
n = IIf(Cells(i + 1, 1).End(xlDown).Row = Rows.Count, i + 1, Cells(i + 1, 1).End(xlDown).Row)
Range(Cells(i + 1, 1), Cells(n, 1)).Rows.Group
End If
Next i
End Sub
[/vba]

Автор - AlexM
Дата добавления - 20.04.2015 в 11:38
ZORRO2005 Дата: Понедельник, 20.04.2015, 11:47 | Сообщение № 10
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Тогда так

Спасибо большое! Так работает.
 
Ответить
Сообщение
Тогда так

Спасибо большое! Так работает.

Автор - ZORRO2005
Дата добавления - 20.04.2015 в 11:47
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Макрос, который создаст структуру (сгруппирует строки). (Иное/Other)
  • Страница 1 из 1
  • 1
Поиск:

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