Sub Перенос() Dim c As Range Dim lr1 AsLong, lr2 AsLong Dim a()
lr1 = Cells(Rows.Count, 2).End(xlUp).Row 'находим номер последней строки на листе орк With Sheets("Маршрутные листы.") 'с листом "Маршрутные листы."
lr2 = .Cells(Rows.Count, 4).End(xlUp).Row + 1'находим номер последней строки на листе "Маршрутные листы." + 1
.Cells(lr2, 5) = Date'ставим дату разделитель
lr2 = lr2 + 1'увеличиваем номер строки For Each c In Range("B2:B" & lr1) 'для всех ячеек в диапазоне ... If c.Interior.ColorIndex = RGB(191, 191, 191) Then'если заливка серый то
a = Range("B" & c.Row & ":H" & c.Row) 'вносим в массив диапазон
.Cells(lr2, 1).Resize(1, 7) = a 'копируем строку на лист "Маршрутный лист."
.Cells(lr2, 8) = Date'ставим дату в последнюю колонку
lr2 = lr2 + 1'увеличиваем номер строки EndIf Next EndWith For i = lr To3Step -1'от последней строки до 3й с шагом -1 If Cells(i, 2).Interior.ColorIndex = RGB(191, 191, 191) Then'если заливка серый то
Rows(i).Delete 'строку удаляем EndIf Next 'Call Сортировка EndSub
Прикладываю образцы для наглядности. На данном этапе , макрос переносит строки по последней, каждую строку в свой диапазон. Необходимо выполнить перенос по ДВУМ условиям:
- Дата отгрузки - Имя водителя Во втором образце я пробовал через расширенный фильтр, но остановился на том, что не получится свои строки в свой диапазон вставить.
Т.е. Выбрав на листе "Заказы" дату отгрузки и водителя, нужно, что бы она была связана с формулой "=Сегодня" на "Маршрутном листе" и с нужным диапазоном соответствующего водителя.
Прошу подмоги.
Здравствуйте! Имеется макрос:
Sub Перенос() Dim c As Range Dim lr1 AsLong, lr2 AsLong Dim a()
lr1 = Cells(Rows.Count, 2).End(xlUp).Row 'находим номер последней строки на листе орк With Sheets("Маршрутные листы.") 'с листом "Маршрутные листы."
lr2 = .Cells(Rows.Count, 4).End(xlUp).Row + 1'находим номер последней строки на листе "Маршрутные листы." + 1
.Cells(lr2, 5) = Date'ставим дату разделитель
lr2 = lr2 + 1'увеличиваем номер строки For Each c In Range("B2:B" & lr1) 'для всех ячеек в диапазоне ... If c.Interior.ColorIndex = RGB(191, 191, 191) Then'если заливка серый то
a = Range("B" & c.Row & ":H" & c.Row) 'вносим в массив диапазон
.Cells(lr2, 1).Resize(1, 7) = a 'копируем строку на лист "Маршрутный лист."
.Cells(lr2, 8) = Date'ставим дату в последнюю колонку
lr2 = lr2 + 1'увеличиваем номер строки EndIf Next EndWith For i = lr To3Step -1'от последней строки до 3й с шагом -1 If Cells(i, 2).Interior.ColorIndex = RGB(191, 191, 191) Then'если заливка серый то
Rows(i).Delete 'строку удаляем EndIf Next 'Call Сортировка EndSub
Прикладываю образцы для наглядности. На данном этапе , макрос переносит строки по последней, каждую строку в свой диапазон. Необходимо выполнить перенос по ДВУМ условиям:
- Дата отгрузки - Имя водителя Во втором образце я пробовал через расширенный фильтр, но остановился на том, что не получится свои строки в свой диапазон вставить.
Т.е. Выбрав на листе "Заказы" дату отгрузки и водителя, нужно, что бы она была связана с формулой "=Сегодня" на "Маршрутном листе" и с нужным диапазоном соответствующего водителя.