Сделал макрос который сортирует в определенной последовательности по цвету
в диапазоне автофильтра.
По кнопке макрос работает как надо.
Вопрос: как сделать так чтобы при закрашивании строки в диапазоне автофильтра макрос срабатывал по условию -
если только полная строка (не ячейка) в диапазоне автофильтра закрашена одним из трех цветов - то срабатывает макрос
и остается выделенной строка которую закрасили изначально (при смещении закрашенной строки вверх) ?
и макрос трехэтажный получился рекодером ...
Код |
---|
Sub Сортировка_несколько_цветов() Application.ScreenUpdating = False 'нет заливки ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Add Key:=Range( _ "E4:E100"), SortOn:=xlSortOnCellColor, Order:=xlAscending, DataOption:= _ xlSortNormal With ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'коричневый ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Add(Range( _ "E4:E100"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _ = RGB(255, 204, 153) With ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'желтый ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Add(Range( _ "E4:E100"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _ = RGB(255, 255, 153) With ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With 'зеленый ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort.SortFields.Add(Range( _ "E4:E100"), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color _ = RGB(153, 255, 204) With ActiveWorkbook.Worksheets("Лист1").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Application.ScreenUpdating = True End Sub |