Страницы: 1
RSS
Поиск ячейки с нужным значением, выбранным из раскрывающегося списка, и переход к ней
 
Здравствуйте!
Мне кажется, что вопрос архипростой, но не могу найти решение...
Есть таблица со значениями, в ячейке А1 из раскрывающегося списка я выбираю нужный магазин.
Что нужно?
- При выборе магазина должен происходить поиск в строке 2 такого же наименования магазина и переход к этой ячейке.
Все. Это необходимый минимум.

Из дополнительных хотелок:
1. Левая часть таблицы закреплена и хочется чтобы найденный столбец "подъезжал" вплотную к этому закреплению" для простоты восприятия информации (т.е. справа от закрепления окажутся показатели, слева - значения.)
2. В ячейке А1 после завершения работы макроса должно выставляться первое значение из списка магазинов "Полная форма отчета". Ну либо просто этот текст. Я его добавила в список магазинов как раз для этой цели, чтобы у пользователя не возникало ощущение, что отчет только по выбранному магазину, т.к. макрос всего лишь переносит в нужную часть листа, а не скрывает остальные магазины.

Теоретически выбор можно делать не через выпадающий список, а через список в элементах управления. Тоже жизнеспособный вариант для меня. Не знаю, что проще...

Очень надеюсь на Вашу помощь!
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "A1" Then
        Dim x As Long
        On Error Resume Next
            x = WorksheetFunction.Match(Target.Value, Rows(2), 0)
            If Err <> 0 Then
                MsgBox "Неведомая дичь " & Target.Value, vbInformation
                Exit Sub
            End If
            Cells(4, x).Select
            ActiveWindow.ScrollColumn = x
        On Error GoTo 0
    End If
End Sub
Это необходимый минимум.
 
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(0, 0) = "A1" Then
        Dim s As String
        s = ActiveWorkbook.Names("Магазины").RefersToRange.Cells(1).Value
        Select Case Target.Value
        Case s
        Case Else
            Dim x As Long
            On Error Resume Next
                x = WorksheetFunction.Match(Target.Value, Rows(2), 0)
                If Err <> 0 Then
                    MsgBox "Неведомая дичь " & Target.Value, vbInformation
                    Exit Sub
                End If
            On Error GoTo 0
            Cells(4, x).Select
            ActiveWindow.ScrollColumn = x
            Application.EnableEvents = False
                Target.Value = s
            Application.EnableEvents = True
        End Select
    End If
End Sub
Это достаточный максимум.
Изменено: МатросНаЗебре - 16.01.2020 10:24:27
 
Спасибо!
Но у меня не работает...
Подозреваю, что нет имени у макроса... Как его дать?
 
Этот макрос надо поместить в модуль листа, срабатывает на изменение ячейки А1
 
Поставила в модуль листа. При изменении ячейки А1 появляется всплывающее сообщение (неведомую дичь поменяла на "переходим к"))
Но перехода нет... По большому счету сообщение мне не нужно, только сам переход в искомую ячейку, ну и плюс хотелки, описанные выше.
 
Цитата
Поставила в модуль листа.
Макрос надо в модуль листа Лист1
При
Код
MsgBox "Неведомая дичь " & Target.Value, vbInformation

выход из программы
Страницы: 1
Наверх