Искал что-то подобное обсуждавшееся, но не нашел. В чем суть. Допустим есть список: полотенце зеленое полено дубовое телефон новый переполох в душе
В ячейке начинаем писать "пол" и тут же выпадает список со строками, в которых содержится эта комбинация: ПОЛотенце зеленое ПОЛено дубовое переПОЛох в душе Дописываем дальше, "поле" - остается для выбора одно Полено дубовое.
Подскажите варианты плз. Спасибо
Всем привет!
Искал что-то подобное обсуждавшееся, но не нашел. В чем суть. Допустим есть список: полотенце зеленое полено дубовое телефон новый переполох в душе
В ячейке начинаем писать "пол" и тут же выпадает список со строками, в которых содержится эта комбинация: ПОЛотенце зеленое ПОЛено дубовое переПОЛох в душе Дописываем дальше, "поле" - остается для выбора одно Полено дубовое.
SLAVICK, спасибо! Второй вариант - очень похоже на то что нужно, который с кнопкой "Найти" Только он ищет совпадения по всем листам, а в моем случае нужно искать по определенному столбцу. Подскажите пож, как именно указать конкретный диапазон? Понимаю, что нужно заменить For Each sh In ActiveWorkbook.Sheets на столбец, но все криво выходит. Заранее спасибо!
[vba]
Код
Private Sub TextBox1_Change() Dim j As Long, i As Long, poisk As Range, iAdr$, LT%, sh As Worksheet ListBox1.Clear LT = Len(TextBox1.Value) If LT = 0 Then Exit Sub j = 0 iAdr = Sheets(1).UsedRange.Address iAdr = Mid(iAdr, InStr(iAdr, ":") + 1) For Each sh In ActiveWorkbook.Sheets For Each poisk In sh.UsedRange On Error Resume Next If poisk Like "*" & TextBox1.Value & "*" Then ListBox1.AddItem sh.Name & "!" & poisk.Address ListBox1.List(j, 1) = poisk j = j + 1 End If Next Next End Sub
[/vba] [moder]Оформляйте коды макросов спецтегами - кнопка # (поправил за Вас). И Правила форума почитайте.
SLAVICK, спасибо! Второй вариант - очень похоже на то что нужно, который с кнопкой "Найти" Только он ищет совпадения по всем листам, а в моем случае нужно искать по определенному столбцу. Подскажите пож, как именно указать конкретный диапазон? Понимаю, что нужно заменить For Each sh In ActiveWorkbook.Sheets на столбец, но все криво выходит. Заранее спасибо!
[vba]
Код
Private Sub TextBox1_Change() Dim j As Long, i As Long, poisk As Range, iAdr$, LT%, sh As Worksheet ListBox1.Clear LT = Len(TextBox1.Value) If LT = 0 Then Exit Sub j = 0 iAdr = Sheets(1).UsedRange.Address iAdr = Mid(iAdr, InStr(iAdr, ":") + 1) For Each sh In ActiveWorkbook.Sheets For Each poisk In sh.UsedRange On Error Resume Next If poisk Like "*" & TextBox1.Value & "*" Then ListBox1.AddItem sh.Name & "!" & poisk.Address ListBox1.List(j, 1) = poisk j = j + 1 End If Next Next End Sub
[/vba] [moder]Оформляйте коды макросов спецтегами - кнопка # (поправил за Вас). И Правила форума почитайте.Sendex
Сообщение отредактировал _Boroda_ - Понедельник, 01.02.2016, 12:15
а в моем случае нужно искать по определенному столбцу.
Попробуйте так: [vba]
Код
Private Sub TextBox1_Change() Dim j As Long, i As Long, poisk As Range, iAdr$, LT%, sh As Worksheet ListBox1.Clear LT = Len(TextBox1.Value) If LT = 0 Then Exit Sub j = 0 iAdr = Sheets(1).UsedRange.Address iAdr = Mid(iAdr, InStr(iAdr, ":") + 1) Set sh = ActiveSheet For Each poisk In Range("d1:d100") On Error Resume Next If poisk Like "*" & TextBox1.Value & "*" Then ListBox1.AddItem sh.Name & "!" & poisk.Address ListBox1.List(j, 1) = poisk j = j + 1 End If Next End Sub
[/vba] здесь будет поиск в диапазоне Range("d1:d100"). Лучше указывать не весь столбец а диапазон(можно с запасом), иначе будет тормозить.
а в моем случае нужно искать по определенному столбцу.
Попробуйте так: [vba]
Код
Private Sub TextBox1_Change() Dim j As Long, i As Long, poisk As Range, iAdr$, LT%, sh As Worksheet ListBox1.Clear LT = Len(TextBox1.Value) If LT = 0 Then Exit Sub j = 0 iAdr = Sheets(1).UsedRange.Address iAdr = Mid(iAdr, InStr(iAdr, ":") + 1) Set sh = ActiveSheet For Each poisk In Range("d1:d100") On Error Resume Next If poisk Like "*" & TextBox1.Value & "*" Then ListBox1.AddItem sh.Name & "!" & poisk.Address ListBox1.List(j, 1) = poisk j = j + 1 End If Next End Sub
[/vba] здесь будет поиск в диапазоне Range("d1:d100"). Лучше указывать не весь столбец а диапазон(можно с запасом), иначе будет тормозить.SLAVICK
Sendex, я так понял, у Вас WinRAR-a нет? Или не подходит? Считаю, отзываться надо бы в любом случае. На случай отсутствия архиватора, сократил размер примера.
Sendex, я так понял, у Вас WinRAR-a нет? Или не подходит? Считаю, отзываться надо бы в любом случае. На случай отсутствия архиватора, сократил размер примера.Wasilich
Wasilic, у меня на Ваш первый файл антивирь ругнулся, поэтому после того что уже SLAVICK предложил, не стал больше пробовать. Сейчас посмотрел, это максимально упрощенный вариант, тоже возьму на заметку. В любом случае - большое спасибо за отклик! И сорри, что не вовремя.
SLAVICK, спасибо за оба варианта! И отдельное огромное спасибо за доработку, все работает как надо!
Wasilic, у меня на Ваш первый файл антивирь ругнулся, поэтому после того что уже SLAVICK предложил, не стал больше пробовать. Сейчас посмотрел, это максимально упрощенный вариант, тоже возьму на заметку. В любом случае - большое спасибо за отклик! И сорри, что не вовремя.
SLAVICK, спасибо за оба варианта! И отдельное огромное спасибо за доработку, все работает как надо!Sendex