Страницы: 1
RSS
Макрос на фильтр "не содержит" более двух критерий, Есть таблица, в которой нужен макрос на фильтр "показать все, кроме 4 или 5, а может и более критерий
 
Есть таблица, в которой нужен макрос на фильтр не содержит "АИ-95", "АИ-98", "АИ-92", "АИ-95","Д/т", Мною бы написан макрос макрорекордером, как я понимаю работает коряво и на старом компьютере долго. Пожалуйста, может у кого лучше есть предложения по макросам. Честно признаюсь в макросах не бум-бум. Файл во вложении. Рада буду любому комментарию.  
 
Здравствуйте! Но ведь работает? Свою задачу выполняет? Правда непонятно зачем там заливка используется. Чтобы быстрее было:
Код
Sub Макрос1()
With Application
        .ScreenUpdating = False
        .DisplayAlerts = False 
        .EnableEvents = False
...ВАШ КОД...
        .EnableEvents = True  
        .DisplayAlerts = True  
        .ScreenUpdating = True     
    End With
End Sub
 
А можно увидеть это в примере?
 
Народ есть еще предложения?
 
Пожалуйста.
 
Согласна, быстрее, спасибо, но сама тема остается актуальной. Тяжело фильтровать по цвету если более двух критерий,  По цвету можно фильтровать если есть два столбца с данными, а что если один столбец А и нужно отфильтровать и показать все кроме трёх или четырех критерий (В моем случае"АИ-95", "АИ-98", "АИ-92", "АИ-95", "Д/т") . Плиз, сделайте мне кто нить макрос, чтоб не содержал нужные мне критерии.
 
Цитата
показать все кроме трёх или четырех критерий (В моем случае"АИ-95", "АИ-98", "АИ-92", "АИ-95", "Д/т"
Код
Sub Tablica()
Dim i As Long
Dim iLastRow As Long
With Application
 .ScreenUpdating = False
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
 Range("A11:G" & iLastRow).EntireRow.Hidden = False
  For i = iLastRow To 11 Step -1
    If Application.Trim(Cells(i, "A")) Like "АИ-9*" Or Application.Trim(Cells(i, "A")) = "Д/т" Then
      Cells(i, "A").EntireRow.Hidden = True
      Cells(i + 1, "A").EntireRow.Hidden = True
    End If
  Next
 .ScreenUpdating = True
End With
End Sub
 
Цитата
personwll написал:
"АИ-95", "АИ-98", "АИ-92", "АИ-95","Д/т",
Укладывается в два фильтра: АИ-9 и д/т
Код
Sub Фильтр_InExSu()
If ActiveSheet.AutoFilterMode = False Then _
  ActiveSheet.Range(ActiveCell.Address).AutoFilter

Dim r As Range: Set r = ActiveSheet.AutoFilter.Range

r.AutoFilter Field:=1, Criteria1:= _
  "<>*АИ-9*", Operator:=xlAnd, Criteria2:="<>*д/т*"
End Sub
Изменено: Inexsu - 22.07.2017 01:29:28
Сравнение прайсов, таблиц - без настроек
 
Кроме четырех критериЕВ(!):
Код
Public Sub www()
    Dim a, c, i&
    ActiveSheet.AutoFilterMode = 0
    c = Array("Д/т", "АИ-98", "АИ-92", "АИ-95")'любые критерии
    a = Application.Transpose(Range([a9], [a65536].End(xlUp)).Value)
    For i = 0 To UBound(c)
        a = Filter(a, c(i), 0, 1)
    Next
    Range([a9], [a65536].End(xlUp)).AutoFilter 1, a, 7, , 0
End Sub
Я сам - дурнее всякого примера! ...
 
Не поняла как ваш макрос работает. Пример можно?
 
Это Вы к кому обращаетесь?
Я сам - дурнее всякого примера! ...
 
К Вам )
Изменено: personwll - 22.07.2017 21:16:22
 
И как я должен догадаться? Помимо моего кода, есть еще пара вариантов - Kuzmich и Inexsu. В правом углу каждого сообщения есть кнопка "Имя". Для персонального обращения. Хотя если дело не касается конкретного ответа лучше обращаться к форуму. А по теме - ну возьмите любой из своих примеров, хоть из №1, хоть из №6 - вставьте туда макрос и выполните. Если и этого не осилите, тогда садитесь за литературу "Для Чайников" и учите матчасть.  ;)
Изменено: kuklp - 22.07.2017 21:29:34
Я сам - дурнее всякого примера! ...
 
kuklp, согласна, спасибо! Вопрос закрыт.
Страницы: 1
Наверх