Страницы: 1
RSS
Автоматическое подставление строки с данными по выбранному из списка номеру., Автоматическое подставление строки с данными по выбранному из списка номеру.
 
Добрый день уважаемые пользователи форума.
Нужна Ваша консультация.

Есть файл с таблицей см. скриншот №1.
При выборе номера магазина из выпадающего списка (ячейка B2) данные подставляются в табличку с помощью функции ВПР.
Интересует вопрос можно ли как то сделать так, что бы при выборе номера магазина из выпадающего списка (ячейка B2) ниже в оновной таблице данных отображалась только строка с выбранным магазином из списка ячейки B2. Настроить так что бы фильтр автоматически выбирал для показа только ту строку которая соответствует номеру магазина выбранного в ячейке B2 см.скриншот №2. На скриншоте 2 фильтр в основной таблице был выбран вручную, а нужно что бы он автоматически выбирался.

Пример файла прикрепляю.
Заранее благодарю за ответ.
Изменено: SanyaMan90 - 10.06.2020 16:10:18
 

Добрый день! макрос:

Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$2" Then
        LastRow = Range("A1000000").End(xlUp).Row
            If ActiveSheet.AutoFilter Is Nothing Then
                Range("A9:F" & LastRow).AutoFilter
            Else: Range("A9:F9").AutoFilter
                Range("A9:F" & LastRow).AutoFilter
            End If
        Range("A9:F" & LastRow).AutoFilter Field:=1, Criteria1:=Target.Value
    End If
End Sub
 
Спасибо большое за помощь.

Хорошего всем дня.

Буду практиковаться :)  
 
Еще вариант.
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) <> "B2" Then Exit Sub
    Selection.AutoFilter Field:=1, Criteria1:=Target.Value
End Sub
Изменено: АlехМ - 10.06.2020 16:44:44
Алексей М.
 
АlехМ, Спасибо большое за помощь.
 
АlехМ, добрый вечер! Если в фильтре выбраны другие параметры или на листе вообще не установлен фильтр, то Ваш код сработает не корректно...
 
Настя_Nastya, Если ваш код использовать в файле xls то получим ошибку.
я бы
Код
LastRow = Range("A1000000").End(xlUp).Row
заменил на
Код
LastRow = Range("а" & Rows.count).End(xlUp).Row
 
"Все гениальное просто, а все простое гениально!!!"
 
Настя_Nastya, если фильтр на листе не установлен, то это не соответствует поставленной задаче.
Если уже установлены параметры в фильтре, их можно сбросить. Добавил в код строки
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) <> "B2" Then Exit Sub
    Application.ScreenUpdating = False
    On Error Resume Next
    ActiveSheet.ShowAllData
    Selection.AutoFilter Field:=1, Criteria1:=Target.Value
    Application.ScreenUpdating = True
End Sub
Алексей М.
 
Всем большое Спасибо за помощь.

Хорошего всем дня :)  
 
Nordheim, согласна, моя срока топорна) Ваша поизящнее будет))
Страницы: 1
Наверх