Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Форма поиска c выводом результатов по всей книге - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Форма поиска c выводом результатов по всей книге (Макросы/Sub)
Форма поиска c выводом результатов по всей книге
elo4ka07 Дата: Среда, 16.09.2015, 09:28 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Всем доброго дня! Возникла проблема с созданием формы поиска, нашла нужный вариант, но вот под себя никак не получается исправить, опыта работы с VBA практически нет.
Смысл таков:
есть база номеров, на отдельный номер создается вкладка, где заполняются детали.

Необходимо:
1. поиск деталей по всей книге
2. вывод результатов поиска в окошке (это делается), но чтобы из этого списка можно было выбрать и перейти на соответствующий лист.

3. Поиск идет с совпадением с начала наименования. Не ищет частичные совпадения ((

Поиск который нашла я ищет только на активном листе и соответственно гиперссылки не используются. Поиск осуществляется чрез отдельную форму.

Вот код:

[vba]
Код
Private Sub TextBox1_Change()
       Dim j As Long, i As Long, poisk As Range, iAdr$, LT%
       ListBox1.Clear
       LT = Len(TextBox1.Value)
       If LT = 0 Then Exit Sub
       j = 0
       iAdr = ActiveSheet.UsedRange.Address
       iAdr = Mid(iAdr, InStr(iAdr, ":") + 1)
       For Each poisk In ActiveSheet.Range("A1:" & iAdr)
       If UCase(Left(poisk, LT)) = UCase(TextBox1.Value) Then
           ListBox1.AddItem poisk.Address
           ListBox1.List(j, 1) = poisk
           j = j + 1
       End If
       Next
End Sub

Private Sub ListBox1_Click()
       If ListBox1.ListIndex = -1 Then Exit Sub
       Range(ListBox1).Select
End Sub
[/vba]

Заранее огромное спасибо.
К сообщению приложен файл: 2067198.xlsm (54.9 Kb)


Сообщение отредактировал elo4ka07 - Среда, 16.09.2015, 11:03
 
Ответить
СообщениеВсем доброго дня! Возникла проблема с созданием формы поиска, нашла нужный вариант, но вот под себя никак не получается исправить, опыта работы с VBA практически нет.
Смысл таков:
есть база номеров, на отдельный номер создается вкладка, где заполняются детали.

Необходимо:
1. поиск деталей по всей книге
2. вывод результатов поиска в окошке (это делается), но чтобы из этого списка можно было выбрать и перейти на соответствующий лист.

3. Поиск идет с совпадением с начала наименования. Не ищет частичные совпадения ((

Поиск который нашла я ищет только на активном листе и соответственно гиперссылки не используются. Поиск осуществляется чрез отдельную форму.

Вот код:

[vba]
Код
Private Sub TextBox1_Change()
       Dim j As Long, i As Long, poisk As Range, iAdr$, LT%
       ListBox1.Clear
       LT = Len(TextBox1.Value)
       If LT = 0 Then Exit Sub
       j = 0
       iAdr = ActiveSheet.UsedRange.Address
       iAdr = Mid(iAdr, InStr(iAdr, ":") + 1)
       For Each poisk In ActiveSheet.Range("A1:" & iAdr)
       If UCase(Left(poisk, LT)) = UCase(TextBox1.Value) Then
           ListBox1.AddItem poisk.Address
           ListBox1.List(j, 1) = poisk
           j = j + 1
       End If
       Next
End Sub

Private Sub ListBox1_Click()
       If ListBox1.ListIndex = -1 Then Exit Sub
       Range(ListBox1).Select
End Sub
[/vba]

Заранее огромное спасибо.

Автор - elo4ka07
Дата добавления - 16.09.2015 в 09:28
SLAVICK Дата: Среда, 16.09.2015, 13:01 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Вот пробуйте :D

Обратите внимание на:
[vba]
Код
"*" & TextBox1.Value & "*"
[/vba]
"*" - это значит любые символы... т.е. при таком коде будет находить все ячейки в которых содержатся введенные символы
Если убрать сначала то будет искать все слова начинающиеся на введенные символы
[vba]
Код
TextBox1.Value & "*"
[/vba]
Если убрать в конце то будет искать все слова заканчивающиеся на введенные символы
[vba]
Код
"*" & TextBox1.Value
[/vba]
Можно вводить подстановочные знаки: * ?
С ними тоже будет работать, например:
М*а:
Машина
Мода
Мука...

М?р*
Морковь
но не
Микрорайон ^_^
К сообщению приложен файл: 1068260.xlsm (61.9 Kb)


Иногда все проще чем кажется с первого взгляда.

Сообщение отредактировал SLAVICK - Среда, 16.09.2015, 13:30
 
Ответить
СообщениеВот пробуйте :D

Обратите внимание на:
[vba]
Код
"*" & TextBox1.Value & "*"
[/vba]
"*" - это значит любые символы... т.е. при таком коде будет находить все ячейки в которых содержатся введенные символы
Если убрать сначала то будет искать все слова начинающиеся на введенные символы
[vba]
Код
TextBox1.Value & "*"
[/vba]
Если убрать в конце то будет искать все слова заканчивающиеся на введенные символы
[vba]
Код
"*" & TextBox1.Value
[/vba]
Можно вводить подстановочные знаки: * ?
С ними тоже будет работать, например:
М*а:
Машина
Мода
Мука...

М?р*
Морковь
но не
Микрорайон ^_^

Автор - SLAVICK
Дата добавления - 16.09.2015 в 13:01
nilem Дата: Среда, 16.09.2015, 13:03 | Сообщение № 3
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
..................... (Slavick уже нарисовал)


Яндекс.Деньги 4100159601573

Сообщение отредактировал nilem - Среда, 16.09.2015, 13:06
 
Ответить
Сообщение..................... (Slavick уже нарисовал)

Автор - nilem
Дата добавления - 16.09.2015 в 13:03
elo4ka07 Дата: Среда, 16.09.2015, 13:25 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 8
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
SLAVICK, ООООО!!!! я преклоняюсь перед вами!!! pray огромное спасибо!!!! hands всё работает и переходит, волшебство!!! first
 
Ответить
СообщениеSLAVICK, ООООО!!!! я преклоняюсь перед вами!!! pray огромное спасибо!!!! hands всё работает и переходит, волшебство!!! first

Автор - elo4ka07
Дата добавления - 16.09.2015 в 13:25
lFJl Дата: Четверг, 17.09.2015, 13:20 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 6 ±
Замечаний: 0% ±

Excel 2013
Еще вопрос по теме, если у нас наложен фильтр, который скрывает ячейку с данными, можно с этой ячейки убрать фильтр? или как-то по другому решить это?
 
Ответить
СообщениеЕще вопрос по теме, если у нас наложен фильтр, который скрывает ячейку с данными, можно с этой ячейки убрать фильтр? или как-то по другому решить это?

Автор - lFJl
Дата добавления - 17.09.2015 в 13:20
SLAVICK Дата: Четверг, 17.09.2015, 13:53 | Сообщение № 6
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
Есть два варианта либо искать только в видимых ячейках
[vba]
Код
For Each poisk In sh.UsedRange.SpecialCells(xlCellTypeVisible) ' ДЛЯ ПОИСКА ТОЛЬКО В ВИДИМЫХ ЯЧЕЙКАХ
[/vba]

либо показывать скрытую ячейку
[vba]
Код
    '''''''''''''''''Для открытия спрятанной ячейки
     r.EntireRow.Hidden = False
     r.EntireColumn.Hidden = False
     ''''''''''''''''''
[/vba]
К сообщению приложен файл: 1068260-2-.xlsm (62.4 Kb)


Иногда все проще чем кажется с первого взгляда.
 
Ответить
СообщениеЕсть два варианта либо искать только в видимых ячейках
[vba]
Код
For Each poisk In sh.UsedRange.SpecialCells(xlCellTypeVisible) ' ДЛЯ ПОИСКА ТОЛЬКО В ВИДИМЫХ ЯЧЕЙКАХ
[/vba]

либо показывать скрытую ячейку
[vba]
Код
    '''''''''''''''''Для открытия спрятанной ячейки
     r.EntireRow.Hidden = False
     r.EntireColumn.Hidden = False
     ''''''''''''''''''
[/vba]

Автор - SLAVICK
Дата добавления - 17.09.2015 в 13:53
urlchik Дата: Вторник, 12.12.2017, 16:37 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
SLAVICK, А как в существующей форме с листбоксом осуществить поиск?
1.Чтоб при нахождении искомого, в листбоксе автоматически выделялась строка с нужным результатом
2.При нажатии на кнопку "поиск", выполнялся поиск следующего совпадения

Познания в VBA =0,01. Пробывал в свою форму добавлять Ваш код (с исправлениями ссылок) - результата 0.

Заранее благодарен!
К сообщению приложен файл: qwerty1-1.xlsm (24.3 Kb)


Век живи - век учись!
 
Ответить
СообщениеSLAVICK, А как в существующей форме с листбоксом осуществить поиск?
1.Чтоб при нахождении искомого, в листбоксе автоматически выделялась строка с нужным результатом
2.При нажатии на кнопку "поиск", выполнялся поиск следующего совпадения

Познания в VBA =0,01. Пробывал в свою форму добавлять Ваш код (с исправлениями ссылок) - результата 0.

Заранее благодарен!

Автор - urlchik
Дата добавления - 12.12.2017 в 16:37
Pelena Дата: Вторник, 12.12.2017, 16:42 | Сообщение № 8
Группа: Админы
Ранг: Местный житель
Сообщений: 19174
Репутация: 4413 ±
Замечаний: ±

Excel 365 & Mac Excel
urlchik, прочитайте Правила форума и создайте свою тему. Эта тема закрыта


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщениеurlchik, прочитайте Правила форума и создайте свою тему. Эта тема закрыта

Автор - Pelena
Дата добавления - 12.12.2017 в 16:42
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Форма поиска c выводом результатов по всей книге (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!