Фильтрануть частями данные в колонке
ant6729
Дата: Четверг, 29.03.2018, 13:37 |
Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация:
2
±
Замечаний:
40% ±
Excel 2010
Всем привет! Как из а получить б? Цвет будет такой, как в примере, возможно, можно привязаться к цвету, а может, и нет... даже если и через это цеплять фильтр... Кто-то может ли предложить вариант?
Всем привет! Как из а получить б? Цвет будет такой, как в примере, возможно, можно привязаться к цвету, а может, и нет... даже если и через это цеплять фильтр... Кто-то может ли предложить вариант? ant6729
Ответить
Сообщение Всем привет! Как из а получить б? Цвет будет такой, как в примере, возможно, можно привязаться к цвету, а может, и нет... даже если и через это цеплять фильтр... Кто-то может ли предложить вариант? Автор - ant6729 Дата добавления - 29.03.2018 в 13:37
and_evg
Дата: Четверг, 29.03.2018, 13:43 |
Сообщение № 2
Группа: Проверенные
Ранг: Обитатель
Сообщений: 496
Репутация:
100
±
Замечаний:
0% ±
Excel 2007
Привет! Наверно имели ввиду не фильтр, а сортировку?
Привет! Наверно имели ввиду не фильтр, а сортировку? and_evg
Ответить
Сообщение Привет! Наверно имели ввиду не фильтр, а сортировку? Автор - and_evg Дата добавления - 29.03.2018 в 13:43
ant6729
Дата: Четверг, 29.03.2018, 14:50 |
Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация:
2
±
Замечаний:
40% ±
Excel 2010
Да, сортировку, извините Торможу хронически
Да, сортировку, извините Торможу хронически ant6729
Ответить
Сообщение Да, сортировку, извините Торможу хронически Автор - ant6729 Дата добавления - 29.03.2018 в 14:50
and_evg
Дата: Четверг, 29.03.2018, 15:34 |
Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 496
Репутация:
100
±
Замечаний:
0% ±
Excel 2007
ну так... не знаю как в 2010 экселе, а в 2007 - Вкладка "Данные", панель "Сортировка и фильтр" Догадываюсь, что 2010 так же...
ну так... не знаю как в 2010 экселе, а в 2007 - Вкладка "Данные", панель "Сортировка и фильтр" Догадываюсь, что 2010 так же...and_evg
Ответить
Сообщение ну так... не знаю как в 2010 экселе, а в 2007 - Вкладка "Данные", панель "Сортировка и фильтр" Догадываюсь, что 2010 так же...Автор - and_evg Дата добавления - 29.03.2018 в 15:34
ant6729
Дата: Четверг, 29.03.2018, 16:14 |
Сообщение № 5
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация:
2
±
Замечаний:
40% ±
Excel 2010
Оно не отсортирует так, как нужно. Часть(цветная) от максимального к минимальному, а часть (незакрашенная) от минимального к максимальному.
Оно не отсортирует так, как нужно. Часть(цветная) от максимального к минимальному, а часть (незакрашенная) от минимального к максимальному. ant6729
Ответить
Сообщение Оно не отсортирует так, как нужно. Часть(цветная) от максимального к минимальному, а часть (незакрашенная) от минимального к максимальному. Автор - ant6729 Дата добавления - 29.03.2018 в 16:14
ant6729
Дата: Четверг, 29.03.2018, 18:12 |
Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 533
Репутация:
2
±
Замечаний:
40% ±
Excel 2010
Извращение номер 2 Изначально где-нибудь перед выполнением процедуры должен стоять фильтр. [vba]Код
Public m As Variant Sub ddd() m = Empty lr = Cells(Rows.count, 1).End(xlUp).Row For i = 2 To lr If Cells(i, 12).Interior.Color <> Cells(i - 1, 12).Interior.Color Then m = i If Cells(i, 12).Interior.Color <> Cells(i - 1, 12).Interior.Color Then Rows(i - 1).Select Selection.AutoFilter Next i lr = Cells(Rows.count, 1).End(xlUp).Row ActiveWorkbook.Worksheets("TDSheet").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("TDSheet").AutoFilter.Sort.SortFields.Add Key:= _ Range("L" & m & ":L" & lr), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _ :=xlSortNormal With ActiveWorkbook.Worksheets("TDSheet").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
[/vba]
Извращение номер 2 Изначально где-нибудь перед выполнением процедуры должен стоять фильтр. [vba]Код
Public m As Variant Sub ddd() m = Empty lr = Cells(Rows.count, 1).End(xlUp).Row For i = 2 To lr If Cells(i, 12).Interior.Color <> Cells(i - 1, 12).Interior.Color Then m = i If Cells(i, 12).Interior.Color <> Cells(i - 1, 12).Interior.Color Then Rows(i - 1).Select Selection.AutoFilter Next i lr = Cells(Rows.count, 1).End(xlUp).Row ActiveWorkbook.Worksheets("TDSheet").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("TDSheet").AutoFilter.Sort.SortFields.Add Key:= _ Range("L" & m & ":L" & lr), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _ :=xlSortNormal With ActiveWorkbook.Worksheets("TDSheet").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
[/vba] ant6729
Ответить
Сообщение Извращение номер 2 Изначально где-нибудь перед выполнением процедуры должен стоять фильтр. [vba]Код
Public m As Variant Sub ddd() m = Empty lr = Cells(Rows.count, 1).End(xlUp).Row For i = 2 To lr If Cells(i, 12).Interior.Color <> Cells(i - 1, 12).Interior.Color Then m = i If Cells(i, 12).Interior.Color <> Cells(i - 1, 12).Interior.Color Then Rows(i - 1).Select Selection.AutoFilter Next i lr = Cells(Rows.count, 1).End(xlUp).Row ActiveWorkbook.Worksheets("TDSheet").AutoFilter.Sort.SortFields.Clear ActiveWorkbook.Worksheets("TDSheet").AutoFilter.Sort.SortFields.Add Key:= _ Range("L" & m & ":L" & lr), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption _ :=xlSortNormal With ActiveWorkbook.Worksheets("TDSheet").AutoFilter.Sort .Header = xlYes .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With End Sub
[/vba] Автор - ant6729 Дата добавления - 29.03.2018 в 18:12
Karataev
Дата: Воскресенье, 01.04.2018, 22:54 |
Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 1342
Репутация:
535
±
Замечаний:
0% ±
Excel
Предполагается, что синий цвет всегда вверху, белый внизу.
[vba]
Код
Sub Сортировка() Dim sh As Worksheet, rngTotal As Range, rngBlue As Range, rngWhite As Range Dim rngFind As Range, lr As Long Set sh = ActiveSheet lr = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row Set rngTotal = sh.Range("A2:A" & lr) Application.FindFormat.Clear Application.FindFormat.Interior.Color = 16777215 Set rngFind = rngTotal.Find(What:="", After:=rngTotal.Cells(rngTotal.Cells.Count), LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True) If rngFind Is Nothing Then Set rngBlue = rngTotal Else If rngFind.Row = 2 Then Set rngWhite = rngTotal Else Set rngBlue = sh.Rows("2:" & rngFind.Row - 1).Columns("A:B") Set rngWhite = sh.Rows(rngFind.Row & ":" & lr).Columns("A:B") End If End If If Not rngBlue Is Nothing Then sh.Sort.SortFields.Clear sh.Sort.Header = xlNo sh.Sort.SortFields.Add key:=sh.Columns("A"), Order:=xlDescending sh.Sort.SetRange rngBlue sh.Sort.Apply End If If Not rngWhite Is Nothing Then sh.Sort.SortFields.Clear sh.Sort.Header = xlNo sh.Sort.SortFields.Add key:=sh.Columns("A"), Order:=xlAscending sh.Sort.SetRange rngWhite sh.Sort.Apply End If End Sub
[/vba]
Предполагается, что синий цвет всегда вверху, белый внизу.
[vba]
Код
Sub Сортировка() Dim sh As Worksheet, rngTotal As Range, rngBlue As Range, rngWhite As Range Dim rngFind As Range, lr As Long Set sh = ActiveSheet lr = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row Set rngTotal = sh.Range("A2:A" & lr) Application.FindFormat.Clear Application.FindFormat.Interior.Color = 16777215 Set rngFind = rngTotal.Find(What:="", After:=rngTotal.Cells(rngTotal.Cells.Count), LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True) If rngFind Is Nothing Then Set rngBlue = rngTotal Else If rngFind.Row = 2 Then Set rngWhite = rngTotal Else Set rngBlue = sh.Rows("2:" & rngFind.Row - 1).Columns("A:B") Set rngWhite = sh.Rows(rngFind.Row & ":" & lr).Columns("A:B") End If End If If Not rngBlue Is Nothing Then sh.Sort.SortFields.Clear sh.Sort.Header = xlNo sh.Sort.SortFields.Add key:=sh.Columns("A"), Order:=xlDescending sh.Sort.SetRange rngBlue sh.Sort.Apply End If If Not rngWhite Is Nothing Then sh.Sort.SortFields.Clear sh.Sort.Header = xlNo sh.Sort.SortFields.Add key:=sh.Columns("A"), Order:=xlAscending sh.Sort.SetRange rngWhite sh.Sort.Apply End If End Sub
[/vba]
Karataev
Сообщение отредактировал Karataev - Воскресенье, 01.04.2018, 22:56
Ответить
Сообщение Предполагается, что синий цвет всегда вверху, белый внизу.
[vba]
Код
Sub Сортировка() Dim sh As Worksheet, rngTotal As Range, rngBlue As Range, rngWhite As Range Dim rngFind As Range, lr As Long Set sh = ActiveSheet lr = sh.Cells(sh.Rows.Count, "A").End(xlUp).Row Set rngTotal = sh.Range("A2:A" & lr) Application.FindFormat.Clear Application.FindFormat.Interior.Color = 16777215 Set rngFind = rngTotal.Find(What:="", After:=rngTotal.Cells(rngTotal.Cells.Count), LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=True) If rngFind Is Nothing Then Set rngBlue = rngTotal Else If rngFind.Row = 2 Then Set rngWhite = rngTotal Else Set rngBlue = sh.Rows("2:" & rngFind.Row - 1).Columns("A:B") Set rngWhite = sh.Rows(rngFind.Row & ":" & lr).Columns("A:B") End If End If If Not rngBlue Is Nothing Then sh.Sort.SortFields.Clear sh.Sort.Header = xlNo sh.Sort.SortFields.Add key:=sh.Columns("A"), Order:=xlDescending sh.Sort.SetRange rngBlue sh.Sort.Apply End If If Not rngWhite Is Nothing Then sh.Sort.SortFields.Clear sh.Sort.Header = xlNo sh.Sort.SortFields.Add key:=sh.Columns("A"), Order:=xlAscending sh.Sort.SetRange rngWhite sh.Sort.Apply End If End Sub
[/vba]
Автор - Karataev Дата добавления - 01.04.2018 в 22:54