Страницы: 1
RSS
Группировка за месяц
 
Уважаемые гуру VBA, подскажите как реализовать группировку:  
каждый денеь менеджер добавляет в конец таблицы некоторые данные, по столбцу "А" сразу же проставляется текущая дата и время функцией Now(), каждый день таблица растёт, появилась мысль автоматизировать группировку т.е. даные за месяц группировать( т.е. что бы справа появлялся +, и всегда можно было развернуть полную таблицу и свернуть) как месяц закончился автоматически создавалась група и так постоянноза каждый месяц новая группа, можете помочь?
 
Да не вопрос) Давайте ваш исходный файл, прикрутим группировку - делов на 10 минут (с отладкой:)
 
Вот собственно и сам файл.
 
{quote}{login=Влад}{date=12.07.2012 07:11}{thema=}{post}Да не вопрос) Давайте ваш исходный файл, прикрутим группировку - делов на 10 минут (с отладкой:){/post}{/quote}  
с перекуром :)
 
{quote}{login=LE}{date=12.07.2012 07:02}{thema=Группировка за месяц}{post} что бы справа появлялся +{/post}{/quote}Не встречал плюсика справа :-)
 
Перепутал, извините, слева))
 
В Офисе 2007,2010 поможет сводная таблица .
O Tempora, O Mores!!!
 
Макрос:  
Sub dd()  
Dim i As Long, fin As Long  
Application.ScreenUpdating = 0  
   For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1  
   If IsDate(Cells(i, 1)) Then  
       If i = 2 Then Rows(i & ":" & fin).Group  
       If Month(Cells(i, 1)) <> Month(Cells(i + 1, 1)) Then  
       If i <> Cells(Rows.Count, 1).End(xlUp).Row Then Rows(i + 1 & ":" & fin).Group  
       Rows(i + 1).Insert  
       Cells(i + 1, 1).Value = Format(Cells(i, 1), "MMMM")  
       fin = i  
       End If  
   End If  
   Next  
Application.ScreenUpdating = 1  
End Sub
 
Ну вообще-то я рассчитывал,что в вашем файле уже будет макрос (если дата добавляется сразу, значит должен работать макрос отслеживания?). Или будете каждый раз вручную запускать? От этого зависит, какой конкретно код писать. Разовый уже ув. sva написал, но группировка будет производиться все время заново.
 
Всё работает как надо, но одинажды, т.е. если потом добавить новые строки то уже не работает(( вот приклвдываю файлик с кнопочкой которая добавляет в конец таблицы дату (в исходном коде запускается форма где заполняются поля и впринципе дата проставляется почти таким же образом) хотелось бы что бы группировка проверялась допустим при запуске книги через Private Sub Workbook_Open(), возможно?
 
Private Sub Workbook_Open()  
Dim i As Long, fin As Long  
Application.ScreenUpdating = 0  
On Error Resume Next  
Rows("2:" & Cells(Rows.Count, 1).End(xlUp).Row).Ungroup  
Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).EntireRow.Hidden = 0  
Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeConstants, 2).EntireRow.Delete  
On Error GoTo 0  
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1  
If IsDate(Cells(i, 1)) Then  
If i = 2 Then Rows(i & ":" & fin).Group  
If Month(Cells(i, 1)) <> Month(Cells(i + 1, 1)) Then  
If i <> Cells(Rows.Count, 1).End(xlUp).Row Then Rows(i + 1 & ":" & fin).Group  
Rows(i + 1).Insert  
Cells(i + 1, 1).Value = Format(Cells(i, 1), "MMMM")  
fin = i  
End If  
End If  
Next  
Application.ScreenUpdating = 1  
End Sub
 
Как я понял группировка происходит по текстовому полю.  
А как можно подправить данный код, чтобы группировать даты. не добовлять лишнею строку, и групприровка происходила по второму (В) столбцу
 
Помогите пожалуйста:)
 
Может лучше создать новую тему?
 
Не нужно: вопрос по теме.
Страницы: 1
Наверх