Katerpiller Пользователь Сообщений: 5 |
добрый день! прошу помочь в написании макроса. суть задачи — есть бланк, с разбивкой по кол-ву недель в месяце. по прошествии недели не актуальную инфо (прошлая неделя и следующая) необходимо сгруппировать, текущая неделя — разгруппировать. В одной книге типовых листов может быть до 5. еженедельно на такую механическую работу тратиться много времени. Хотелось написать макрос и вывести кнопки для каждой недели. Прикрепленные файлы
|
Nordheim Пользователь Сообщений: 3154 |
#2 25.09.2017 15:54:34
А что мешает, если уж так хочется? «Все гениальное просто, а все простое гениально!!!» |
||
Katerpiller Пользователь Сообщений: 5 |
минимальные познания |
Nordheim Пользователь Сообщений: 3154 |
#4 25.09.2017 16:04:14 получается фраза
Это значит написать все с нуля? «Все гениальное просто, а все простое гениально!!!» |
||
Katerpiller Пользователь Сообщений: 5 |
по факту да |
kuklp Пользователь Сообщений: 14868 E-mail и реквизиты в профиле. |
Есть варианты. Или писать самому, спрашивая что не получается, или заказать готовое и не морочить голову. Я сам — дурнее всякого примера! … |
Katerpiller Пользователь Сообщений: 5 |
#7 10.10.2017 15:21:18 Добрый день!
Изменено: Katerpiller — 11.10.2017 11:07:53 |
||
Equio Пользователь Сообщений: 274 |
На всех листах или на выбранных? |
Katerpiller Пользователь Сообщений: 5 |
на выбранных. они идут подряд, но следом есть листы с исходными данными, там применять макрос не нужно |
Equio Пользователь Сообщений: 274 |
#10 11.10.2017 15:24:42 Если под выбранными листами имеются в виду несколько выбранных ярлычков с названиями листов внизу окна, то:
Если под выбранными листами имеются в виду листы с определёнными именами, то:
|
||||
Return to VBA Code Examples
This tutorial will demonstrate how to group and ungroup rows and columns in VBA.
Group Rows or Columns
To group rows or columns apply the Group Method to the rows or columns:
Rows("3:5").Group
or
Columns("C:D").Group
Ungroup Rows or Columns
To ungroup the rows or columns, simply use the Ungroup Method:
Rows("3:5").Ungroup
or
Columns("C:D").Ungroup
Expand All “Grouped” Outline Levels
To expand all grouped outline levels, use this line of code:
ActiveSheet.Outline.ShowLevels RowLevels:=8, ColumnLevels:=8
To collapse all outline levels, use this line of code:
ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1
VBA Coding Made Easy
Stop searching for VBA code online. Learn more about AutoMacro — A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!
Learn More!
Regarding rows not in pivot tables … It has NOT been my experience in Excel 2010 that ShowDetail ALWAYS evaluates to True. I thought it did but I didn’t realize that I needed to be on the summary row for this property to work as expected. Second of all, I didn’t realize the summary row by default is UNDER the grouped rows. Testing for collapsed/expanded became much clearer once I changed that setting to have the summary row above the grouped rows (in the Ribbon: Data > Outline, Show the Outline Dlg Box).
If my selected cell is on the summary row, the ShowDetail evalutes to True if the grouped records are showing, and to False if they are not. The key for me was being on the summary row to see that behavior work this way. Having the child/grouped rows above by default really threw me.
Here’s my macro, which dynamically expands and collapses the grouped records tied to the summary row when I select a cell on a summary row. And, it makes my cell in column A bold if the section is expanded. This macro does not run if I’ve selected more than one cell.
Note that worksheet protection prevents expanding and collapsing groups of cells. My worksheet is protected, so I unprotect the sheets to expand/collapse then reprotect them after. (A possible improvement would be for me to just unprotect/protect just the current sheet instead of all of them.)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'TOGGLE SHOW/HIDE ROW
If Target.Cells.Count = 1 Then
If (Target.EntireRow.OutlineLevel = 1) And (Target.Offset(1, 0).EntireRow.OutlineLevel = 2) And _
(Target.Column < 15) Then
Call Macros.ProtShts(False)
Target.EntireRow.ShowDetail = Not Target.EntireRow.ShowDetail
If Target.EntireRow.ShowDetail = True Then
Range(Cells(Target.Row, 1), Cells(Target.Row, 14)).Font.Bold = True
Else
Range(Cells(Target.Row, 1), Cells(Target.Row, 14)).Font.Bold = False
End If
Call Macros.ProtShts(True)
End If
End If
End Sub
Remember, I set my summary row to be above the grouped records. If your summary row is below the grouped records (the default) then the offset row reference must be changed to -1, like this:
(Target.Offset(1, 0).EntireRow.OutlineLevel = 2)
Vhodnoylogin -12 / 3 / 0 Регистрация: 02.04.2012 Сообщений: 347 |
||||
1 |
||||
Как группировать столбцы правильно?30.09.2016, 11:45. Показов 4993. Ответов 4 Метки нет (Все метки)
Люди, здравствуйте. Как группировать столбцы (да и строки). Вот, мне надо сделать в диапазоне несколько группировок. Для этого делаю такую штуку.
То есть он должен 8 раз выделить диапазон и сгруппировать его. При этом должны оставаться между ними еще и несгруппированные ячейки. Но этот гад под названием ВБА просто все группирует под один большой кат. И все. А мне нужно 8. Как это правильно сделать?
0 |
KoGG 5590 / 1580 / 406 Регистрация: 23.12.2010 Сообщений: 2,366 Записей в блоге: 1 |
||||
30.09.2016, 12:03 |
2 |
|||
Гад не VBA.
0 |
-12 / 3 / 0 Регистрация: 02.04.2012 Сообщений: 347 |
|
03.10.2016, 08:09 [ТС] |
3 |
А как сделать так, чтобы группировка создавалась закрытой, а не открытой? А то мне как-то мало пользы от нее, если ячейки все равно на весь экран растягиваются.
0 |
Заблокирован |
||||
03.10.2016, 08:24 |
4 |
|||
чтобы группировка создавалась закрытой, а не открытой? Никак. Закрывайте после создания (примерно так)
0 |
Vhodnoylogin -12 / 3 / 0 Регистрация: 02.04.2012 Сообщений: 347 |
||||
03.10.2016, 15:56 [ТС] |
5 |
|||
Гууд, благодарю. Добавлено через 6 часов 54 минуты
Закрывайте после создания (примерно так) Не работает этот код.
А группировки все равно развернуты.
0 |
Группировка столбцов по изменяющемуся значению в ячейке |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |