Доброго дня, коллеги, выручайте. Нужен макрос для справочника, прикладываю файл - задача при вводе номера телефона в желтую ячейку L2, нажатием на кнопку в ячейку М2 выводилось соответствие из таблицы F:H
Вариант на Power Query. В зеленую ячейку вносите нужный телефон, потом тыкаете по этой ячейке правой кнопкой мыши и выбираете пункт меню обновить, справа выведется регион.
Копируете диапазон из вашего исходника и вставляете в синюю таблицу начиная со второй строки, сразу после заголовков. Диапазон умной таблицы должен автоматически расшириться, чтобы захватить все что вы вставите. После этого пользуйтесь.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("L2")) Is Nothing Then
Application.EnableEvents = False
Dim i As Long
Dim iLastRow As Long
iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To iLastRow
If Target >= Cells(i, "F") And Target <= Cells(i, "G") Then
MsgBox "Введенный номер попадает в диапазон в строке: " & i & " регион: " & Cells(i, "H")
Exit For
End If
Next
If i > iLastRow Then
MsgBox "Нет такого номера в диапазонах столбцов F и G"
Application.EnableEvents = True
Exit Sub
End If
End If
Application.EnableEvents = True
End Sub
P.S. Теперь уже данные в столбце А.. раньше были в F и G... Мне кажется вас кто-то держит в заложниках и не даёт сформулировать нормально задание и приложить нормальный (Правильный) пример. То у меня данные там-то, то у меня тут, да мне нужен Регион, но такого названия столбца в таблице нет... Что с вами происходит?
wolfy36, есть, в зеленую табличку можете вставить не один номер, а сто тысяч номеров и нажать обновить, он вам подтянет все регионы. Но работать будет довольно долго, т.к. скрипт для этого не оптимизирован. Чтобы работал быстро, его нужно будет переделать. Но вы попробуйте, может и так устроит.
Значит все таки на ВЫ. Если отсортировать ваш справочник по столбцу F, то при помощи ВПР можно подтягивать регион интервальным просмотром, это когда последний аргумент = 1, а не ноль. Но там скорее всего не так просто, если интервалы имеют пробелы, хотя это тоже можно обойти.