Страницы: 1
RSS
Автосортировка строк по условию в рамках умной таблицы, макрос
 
Доброго времени суток,
граждане, кто нибудь выполнял ли автосортировку строк по условию ( не алфавиту) в рамках умной таблице, то есть расширямого динамического диапазона ?
Пример
есть умная таблица, в которую заношу задания на каждый или долгосрочный план, при выполнении ставлю галочку. уменя просиходит задеменения фона.
задачи дабавляются сверху путем вставки листа, так как нет желания прокручивать лист в самый низ ( так как кол-во заданий будет рости)
вопрос, как сделать, что бы строки с галочками уходили в самый низ умной таблице, а не фиксированного диапазона ?
Изменено: Ар.т - 24.11.2019 17:01:09
 
для получения ответа на волнующий вас вопрос - сформулированная вами задача должна отвечать 3-м простым требованиям:
1. задача должна иметь исчерпывающее описание
2. сделанное как можно лаконичнее
3. со ссылками на имена конкретных ячеек, листов из приложенного файла-примера
если задача описана именно так, то скорее всего вторим сообщением в теме будет ТОЧНОЕ РЕШЕНИЕ вашей задачи
Изменено: Ігор Гончаренко - 24.11.2019 23:11:53
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ребята, добрый день.
сам разобрался, записал макрос, где вручную сортировал таблицу = получиликод, добавил его в макрос, который при измении ячейки в определенном динамическом диапазоне (столбце) указывает его время в соседней ячейке. при этом после каждого изменении -просиходит автосортировка по условию.
Макрос работает, но не хватаетб как мне кажется - упрощенности что ли, как то массивно выглядит. Если кто может его оптимизировать буду рад.
с/у

вот сам код
Код
Private Sub Worksheet_Change(ByVal Target As Range)
  '  Application.ScreenUpdating = False
  '  Application.EnableEvents = False
     Dim cell As Range
    For Each cell In Target
        If Not Intersect(cell, ListObjects("Tracker_list").ListColumns("ACTION").DataBodyRange) Is Nothing Then
            'On Error Resume Next
            With Cells(Target.Row, ListObjects("Tracker_list").ListColumns("Date of completion").DataBodyRange.Column)
                If IsEmpty(Target) Then
                    .Value = "ÕÇ"
                    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Clear
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(255, 153, 102)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(155, 187, 89)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(196, 215, 155)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(216, 228, 188)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(235, 241, 222)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add Key:=Range("Tracker_list[RANK" & Chr(10) & "(list)]"), SortOn:= _
        xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlDescending, _
        , xlSortNormal).SortOnValue.Color = RGB(166, 166, 166)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add Key:=Range("Tracker_list[ACTION]"), SortOn:=xlSortOnValues, _
        Order:=xlAscending, CustomOrder:="P,Q,]", DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort
        .Header = xlYes
        .MatchCase = True
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
                Else
                    .Value = Now
                    .EntireColumn.AutoFit
                    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Clear
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(255, 153, 102)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(155, 187, 89)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(196, 215, 155)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(216, 228, 188)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlAscending, _
        , xlSortNormal).SortOnValue.Color = RGB(235, 241, 222)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add Key:=Range("Tracker_list[RANK" & Chr(10) & "(list)]"), SortOn:= _
        xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add(Range("Tracker_list[ACTION]"), xlSortOnCellColor, xlDescending, _
        , xlSortNormal).SortOnValue.Color = RGB(166, 166, 166)
    ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort. _
        SortFields.Add Key:=Range("Tracker_list[ACTION]"), SortOn:=xlSortOnValues, _
        Order:=xlAscending, CustomOrder:="P,Q,]", DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Tracker_list").ListObjects("Tracker_list").Sort
        .Header = xlYes
        .MatchCase = True
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
                End If
            End With
        End If
    
   ' Application.ScreenUpdating = True
   ' Application.EnableEvents = True
    Next cell
End Sub
Изменено: Ар.т - 25.11.2019 16:17:37
 
Ну ладно , проблема закрыта. можно в архив
Страницы: 1
Наверх