Страницы: 1
RSS
Макрос разбивки одной таблицы на несколько отдельных таблиц
 
Уважаемые форумчане добрый день/вечер/ночь/утро  
 
Цель (кратко):  
 
Мне нужна Ваша помощь, чтобы дописать макрос, который бы автоматически разделял одну таблицу на несколько табличек, критерий разделения - столбец UIN в табличке. Наработки в плане макроса уже есть, но требуется добавить кое какие действия.  
 
Что есть:    
 
Итак, из программы по учету выполненных работ ежедневно выгружаются данные в следующем формате:  
 
Код услуги - всегда разный (что то типа счетчика как в Access)  
Тип - вариации различны, начиная от транспортировки и заканчивая перевозкой (каждый раз разные)  
Название услуги - название услуги  
Компания - название компании (всегда одна и таже)  
Клиент - ФИО клиента (постоянно разные)  
Дата - дата услуги (постоянно разная)  
Цена - цена за услугу (постоянно разная)  
Счет - на момент выгрузки всегда пустой  
UIN - уникальный номер заказа в базе (может быть одним и тем же для нескольких клиентов)  
 
* Количество строк в таблице при каждой выгрузке разное.  
 
Написал макрос который  автоматически очерчивает границы для таблицы и сортирует имеющиеся данные выгрузки по возрастанию (по столбцу UIN).  
 
Вопрос:    
не могу, а точнее не знаю как сделать так чтобы макрос после добавления к таблице границ и сортировки - разделял всю таблицу на несколько отдельных таблиц согласно уникальным номерам UIN (более наглядно то что я имею ввиду показано в файле на страничке То что я хочу сделать) и для каждой таблицы добавлял шапку (ну это если можно, если нет, то хотя бы разделение на отдельные таблички).    
 
Т.е. например в таблице есть несколько записей с UIN 4700593802,4700593804,4800593803 - в результате макрос должен разделить всю таблицу на 3 отдельных таблички в каждой из которых содержаться записи с одинаковыми UIN, т.е. в первой табличке все записи с UIN  4700593802, во второй табличке все записи с UIN  4700593804, в третей табличке все записи с UIN  4800593803  
 
Между разделенными таким образом табличками должно быть расстояние в две строчки.    
Количество строк в таблице при каждой выгрузке разное.  
 
Буду очень признателен всем кто поможет в реализации данной задачи
 
Сделал вам макрос.  
Вот что получилось:  
 
Sub main()  
   Dim ra As Range: Set ra = Range([A2], Range("A" & Rows.Count).End(xlUp)).Resize(, 9)
   ra.Borders.LineStyle = xlContinuous    ' границы  
   ra.Sort ra.Cells(9), xlAscending, , , , , , xlNo    ' сортировка  
   arr = ra.Value ' считываем данные  
 
   Application.ScreenUpdating = False  
   For Each v In UniqueValuesFromArray(arr, 9)    ' перебираем все уникальные UIN  
       arr2 = ArrAutofilterEx(arr, "9=" & v)    ' фильтруем массив данных  
       Range("1:1").Copy Range("A" & Rows.Count).End(xlUp).Offset(2)    ' копируем строку заголовка  
       With Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(UBound(arr2), 9)  
           .Value = arr2    ' вставляем отфильтрованные данные  
           .Borders.LineStyle = xlContinuous    ' границы  
       End With  
   Next  
End Sub  
 
 
Проверяйте - пример в файле во вложении
 
Если надо отступ между таблицами не в одну, а в 2 строки,  
замените в коде  
 
Range("1:1").Copy Range("A" & Rows.Count).End(xlUp).Offset(2)    ' копируем строку заголовка  
 
на  
 
Range("1:1").Copy Range("A" & Rows.Count).End(xlUp).Offset(3)    ' копируем строку заголовка
 
EducatedFool, большое макрос работает как часы, в качестве благодарности за оказанную помощь хочу пополнить баланс твоего веб-мани кошелька, в течение завтрашнего-послезавтрашнего дня проверь его баланс. Еще раз спасибо, выручил.
 
EducatedFool, появился такой вопрос, возможно ли реализовать в данном макросе такой функционал, чтобы после разделения на несколько табличек, для каждой таблички автоматически для столбца Цена - проставлялась формула СУММ для подсчета общей суммы счета и при этом полученное значение выделялось полужирным начертанием.  
 
Заранее спасибо.
 
> возможно ли реализовать в данном макросе такой функционал ...  
 
Да, возможно
 
Цитата
 
чтобы после разделения на несколько табличек, для каждой таблички автоматически для столбца Цена - проставлялась формула СУММ для подсчета общей суммы счета и при этом полученное значение выделялось полужирным начертанием.
 
подскажите пожалуйста какие строчки кода нужно добавить в макрос для того чтобы реализовать данный функционал?  
 
P.S. проверьте почту, там для Вас есть сообщение
Страницы: 1
Читают тему
Наверх
Loading...