Страницы: 1
RSS
[ Закрыто ] Поиск по листам всей книги [ТЕМА ЗАКРЫТА - повторное нарушение]
 
Здравствуйте форумчане! =) Как сделать поиск по листам всей книги? Чтобы на титульном листе была ячейка для ввода слова для поиска и кнопка "поиск". Поиск слова должен происходить по всем листам книги и выводить полученные результаты в определенное поле или в виде гипрессылки переходить на требуемую страницу.
 
Развлекайтесь. (см. файл)
 
всё здорово, но вот если на листе искомое слово встречается несколько раз, то выводится ссылка всего лишь на первое встреченное совпадение, а как быть с остальными?
 
а ещё круто было бы сделать возможным поиск по части слова  
к примеру в ячейке написано Вася Пупкин  
при вводе в ячейку пупк находилась ячейка содержащая эти буквы, т.е. ячецка с Васей Пупкиным
 
я согласен с kovax =) если слово встретиться два раза, то поисковик выведет только первое найденое значение на странице =) а как быть с остальными?  
А так поисковик в принципе нормально работает =)
 
{quote}{login=Medvedoc}{date=25.07.2011 06:14}{thema=}{post} если слово встретиться два раза, то поисковик выведет только первое найденое значение на странице {/post}{/quote}А Вы и не просили такой поиск.
 
{quote}{login=}{date=25.07.2011 06:20}{thema=Re: }{post}{quote}{login=Medvedoc}{date=25.07.2011 06:14}{thema=}{post} если слово встретиться два раза, то поисковик выведет только первое найденое значение на странице {/post}{/quote}А Вы и не просили такой поиск.{/post}{/quote}  
 
Возможно думал о таком поиске =) но не описал до конца сути =)  
А возможен такой вариант?
 
{quote}{login=Medvedoc}{date=25.07.2011 06:23}{thema=Re: Re: }{post}{quote}{login=}{date=25.07.2011 06:20}{thema=Re: }{post}{quote}{login=Medvedoc}{date=25.07.2011 06:14}{thema=}{post} если слово встретиться два раза, то поисковик выведет только первое найденое значение на странице {/post}{/quote}А Вы и не просили такой поиск.{/post}{/quote}  
 
Возможно думал о таком поиске =) но не описал до конца сути =)  
А возможен такой вариант?{/post}{/quote}  
 
И желательно убрать оттуда кнопку очистить, а очищение сделать автоматическим по истечению 30 секунд
 
посмотрел код более внимательнее =) а можно сделать так, чтобы вместо номера ячейки выводилось ее название, точнее текст, который в ней содержится?
 
Заменил в строчке .Value = "Лист: " & iSheet.Name & " Ячейка: " & iFoundRng.Address(0, 0)  
 
значение iFoundRng.Address(0, 0) на iFoundRng.Offset(0, 0) и в выводимых результатах вместо адреса ячейки стало показываться содержимое самой ячейки    
(текст) =)  
 
Остался вопрос как сделать так, чтобы выводились все результаты с заданным значением с одной страницы =)
 
нашел макрос другого поисковика. В нем с листа отображаются все значения. Как можно часть данного кода перенести в свой код, чтобы результаты поиска выводили все найденные значения с листа  
 
Сам код  
Private Sub CommandButton1_Click()  
Dim MyLeight As Integer  
Dim iFirstAddress As String, iSecondAddress As String  
Dim iFoundRng As Range  
 
If Len(ComboBox2.Value) = 1 Then MyLeight = 8  
If Len(ComboBox2.Value) = 2 Then MyLeight = 9  
 
Application.ScreenUpdating = False 'обновление экрана wykl  
 
With Columns(1)  
Set iFoundRng = .Find(ComboBox2.Value & "*" & Right(ComboBox1.Value, 2))  
If Not iFoundRng Is Nothing Then  
iFirstAddress = iFoundRng.Address  
 
Do  
If Len(iFoundRng.Value) = MyLeight Then  
ListBox1.AddItem iFoundRng & "|" & iFoundRng.Offset(0, 1).Value  
End If  
Set iFoundRng = .Columns(1).FindNext(iFoundRng)  
iSecondAddress = iFoundRng.Address  
Loop While iSecondAddress <> iFirstAddress  
 
Else: MsgBox "Нет данных"  
End If  
End With  
Application.ScreenUpdating = True 'обновление экрана wkl  
End Sub
 
Medvedoc, Вы уже СТОЛЬКО написали, а никто ещё не видел Вашего файла.
 
так файлик прикреплен в самом верху =) там windows 7 выложил готовое решение, но это решение выводит в результатах поиска по одному значению с каждого листа при наличии на каждом из этих листов по несколько одинаковых значений =) например на листе имеется два значения в виде цифры 5, при поиске результат покажет с этого листа только первое значение =)  
 
я нашел другой макрос поисковика, где отчасти реализовано то, что надо. Но надо оттуда приспособить код к макросу Windows 7, ЧТОБЫ ПОЛУЧИЛОСЬ 100% ЗАДУМАННОЕ =)  
 
Прикрепил во вложение файлик поисковика, нарытого на аналогичной теме. Мой как вы выражаетесь файл, выложил Windows 7 и от него надо отталкиваться, поскольку это оптимальный вариант решения =)
 
{quote}{login=Medvedoc}{date=25.07.2011 09:59}{thema=}{post}так файлик прикреплен в самом верху =) там windows 7 {/post}{/quote}Правильно - это не Ваш файл, Вы даже поленились набросать пример, а помощи ждёте. Вот и сейчас - просите поиск по ВСЕЙ книге, а в книге всего один лист. Не показали - куда выводить найденное... Много будет желающих делать за Вас файл?
 
Хорошо, вот мой файл.  
Но там нет реализации поиска. Пользователь Windows 7 предложил свой файл. Я его протестировал и обнаружил незначительный минус, который и описал выше. И эт оне значит, что поленился.  
Также на похожей теме нашел другой вариант поисковика, который реализован на одном листе, но при этом выводит результаты поиска всех найденных значений, заданных изначально. Мне надо как-то данную возможность реализовать в макросе пользователя windows 7.
 
пришлось заархивировать  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Прошлось удалить.
 
{quote}{login=Medvedoc}{date=25.07.2011 10:16}{thema=}{post}пришлось заархивировать  
{/post}{/quote}  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
я просто не знаю как макрос Windows 7 подправить, чтобы он выводил все найденные значения с листа по запросу
Страницы: 1
Читают тему
Наверх