Есть макрос который открывает окно поиска("UserForm") по листу с выводом найденных значений в "ListBox1". Необходимо дополнить возможность просмотра найденного в расположении на листе, если выделить "мышкой" наведенное в "ListBox1". Как это происходит при "Ctrl+F найти все" , при выделении найденного, показывает его расположение на листе. Например если искать 151*, то находит три строки. при выделении каждой строки, видно где данная информация находиться на листе.
нашел здесь на форуме необходимый код, но он у меня не срабатывает, ругается. Видимо я как то не правильно указываю что макрос должен выделять на конкретном листе
Код
'если найден только один эл-т, то переходим к нему
If j = 1 Then Cells(ListBox1.List(0, 0), stolbV).Select
End Sub
Private Sub ListBox1_Click() 'если не выбран элемент списка - выход
If ListBox1.ListIndex = -1 Then Exit Sub 'переход к ячейке листа, содержащей выбранный элемент списка
Cells(ListBox1.Value, stolbV).Select 'выделяет эту строку как ошибку
End Sub
А зачем обязательно двойной? Можно и одиночным. Замените процедуру:
Код
Private Sub ListBox1_Click()
Dim Rng As Range, iRow As Long
'если не выбран элемент списка - выход
If ListBox1.ListIndex = -1 Then Exit Sub
Set Rng = Columns(10).Find(what:=ListBox1.Value, LookIn:=xlValues, lookAt:=xlWhole)
If Not Rng Is Nothing Then iRow = Rng.Row
'переход к ячейке листа, содержащей выбранный элемент списка
Cells(iRow, 10).Select
End Sub
Юрий заменил, работает но не совсем. Если начинаю искать 151* как пример, находит в трех реестрах(№13, 14, 17) когда кликаю на два первых, их правильно показывает. Когда кликаю на третью строку в ListBox. то в реестре показывает не в реестре №17, а в №14
Всё верно: находит первое совпадение. Я в таких случаях записываю в ЛистБокс (КомбоБокс) номер строки, где найдено при заполнении - тогда с поиском проблем нет.