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

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

Я в VBA лох полный, если кто сможет дать готовый код - буду безмерно благодарен.
...
Рейтинг: 0 / 0
15.11.2005, 09:43:30
    #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
15.11.2005, 10:36:00
    #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
15.11.2005, 11:19:52
    #33378421
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как связать два фильтра на разных листах?
Что-то не получается. Можете в пример воткнуть (файл приложил).
В файле нужно получить: при выборе значения На листе 1 фильтра по колонке "В" чтобы на Листе 2 стразу выставлялся такой же фильтр, и при переключении на второй лист видеть уже отфильтрованные данные.

Пожалуйста, очень надо.
...
Рейтинг: 0 / 0
15.11.2005, 12:36:28
    #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
15.11.2005, 12:45:05
    #33378767
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как связать два фильтра на разных листах?
Работает нормально.
Спасибо огромное!
...
Рейтинг: 0 / 0
15.11.2005, 12:53:46
    #33378808
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как связать два фильтра на разных листах?
А если не секрет, для чего надо вообще двоить данные?
...
Рейтинг: 0 / 0
15.11.2005, 13:45:06
    #33379019
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как связать два фильтра на разных листах?
Списки магазинов. Для разных листов свои данные. А при выборке, чтобы не выбирать на каждом листе по отдельности один и тот же магазин, вот и понадобилась такая фича.
...
Рейтинг: 0 / 0
15.11.2005, 16:08:35
    #33379563
k-nike
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как связать два фильтра на разных листах?
RFTСписки магазинов. Для разных листов свои данные.
Ого!!!
Типа для налоговой и для себя?
Почему нельзя все данные на 1 листе держать?
...
Рейтинг: 0 / 0
15.11.2005, 16:36:33
    #33379651
RFT
RFT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как связать два фильтра на разных листах?
k-nikeПочему нельзя все данные на 1 листе держать?
Потому что количество полей (256) не позволяет.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как связать два фильтра на разных листах? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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