powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как связать два фильтра на разных листах?
10 сообщений из 10, страница 1 из 1
Как связать два фильтра на разных листах?
    #33377384
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача такая: есть ексель файл с двумя листами.
На каждом листе есть одинаковые списки данных (будем считать, что 1 колонка)
Также на каждом листе включен автофильтр.

Необходимо: при выборе значения и списка фильтра на одном листе, автоматически отрабатывать фильтр на втором листе с тем же значением.

Я в VBA лох полный, если кто сможет дать готовый код - буду безмерно благодарен.
...
Рейтинг: 0 / 0
Как связать два фильтра на разных листах?
    #33378058
Как вариант.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub AddFilter()
    Dim f As Filter
    Dim w1 As Worksheet
    Dim w2 As Worksheet
    
    Set w1 = Worksheets("Лист1")
    Set w2 = Worksheets("Лист2")
        
    If w1.AutoFilterMode Then
        For Each f In w1.AutoFilter.Filters
            If f.On Then
                If f.Operator Then
                    w2.Range("A1").AutoFilter Field:= 1 , _
                      Criteria1:=f.Criteria1, Criteria2:=f.Criteria2, _
                      Operator:=f.Operator
                Else
                    w2.Range("A1").AutoFilter Field:= 1 , _
                      Criteria1:=f.Criteria1
                End If
            End If
        Next
    Else
        MsgBox "На рабочем листе нет автофильтра"
    End If
End Sub

На листе нет события, которое происходило бы при применении автофильтра, так что придется вызывать в ручную.
...
Рейтинг: 0 / 0
Как связать два фильтра на разных листах?
    #33378244
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть "Лист1" и "Лист2", должно быть включено автоматическое вычисление

1. В обычный модуль
Function My_Func() As String
Application.Volatile
End Function

2. В любую ячейку листа "Лист1"
=My_Func()

3. В модуль "Лист1"
Private Sub Worksheet_Calculate()
If ThisWorkbook.Name = ActiveWorkbook.Name And ActiveSheet.Name = "Лист1" Then
If Worksheets("Лист1").AutoFilterMode And Worksheets("Лист2").AutoFilterMode Then
Application.EnableEvents = False
If Worksheets("Лист1").AutoFilter.Filters(1).On Then
Worksheets("Лист2").Cells.AutoFilter Field:=1, _
Criteria1:=Worksheets("Лист1").AutoFilter.Filters(1).Criteria1
Else
Worksheets("Лист2").Cells.AutoFilter Field:=1
End If
Application.EnableEvents = True
End If
End If
End Sub
...
Рейтинг: 0 / 0
Как связать два фильтра на разных листах?
    #33378421
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не получается. Можете в пример воткнуть (файл приложил).
В файле нужно получить: при выборе значения На листе 1 фильтра по колонке "В" чтобы на Листе 2 стразу выставлялся такой же фильтр, и при переключении на второй лист видеть уже отфильтрованные данные.

Пожалуйста, очень надо.
...
Рейтинг: 0 / 0
Как связать два фильтра на разных листах?
    #33378732
Сделал, посмотри.

Бред с отображением наибольших и наименьших записей.

Макрос пишет:
Код: plaintext
    .AutoFilter Field:= 2 , Criteria1:="5", Operator:=xlTop10Items

А реально фильтр показывает (для этого примера):
Код: plaintext
    Criteria1:=">=2", Operator:=xlTop10Items.

Обошел так, если один из оператор xlTop* или xlBottom* подставляю строку:
Код: plaintext
    .AutoFilter Field:= 2 , Criteria1:=f.Criteria1
...
Рейтинг: 0 / 0
Как связать два фильтра на разных листах?
    #33378767
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает нормально.
Спасибо огромное!
...
Рейтинг: 0 / 0
Как связать два фильтра на разных листах?
    #33378808
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если не секрет, для чего надо вообще двоить данные?
...
Рейтинг: 0 / 0
Как связать два фильтра на разных листах?
    #33379019
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Списки магазинов. Для разных листов свои данные. А при выборке, чтобы не выбирать на каждом листе по отдельности один и тот же магазин, вот и понадобилась такая фича.
...
Рейтинг: 0 / 0
Как связать два фильтра на разных листах?
    #33379563
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RFTСписки магазинов. Для разных листов свои данные.
Ого!!!
Типа для налоговой и для себя?
Почему нельзя все данные на 1 листе держать?
...
Рейтинг: 0 / 0
Как связать два фильтра на разных листах?
    #33379651
RFT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
k-nikeПочему нельзя все данные на 1 листе держать?
Потому что количество полей (256) не позволяет.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как связать два фильтра на разных листах?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]