Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.03.2014, 14:07   #1
Настя Белова
Пользователь
 
Регистрация: 28.03.2014
Сообщений: 29
Вопрос Поиск данных по всем листам

Проблема такая. Я не знаю как написать программу на поиск. существует книга в ней 12 листов.
На главном меню есть кнопка поиск.при нажатии выводить форма куда пользователь вводит часть предположении или цифру. Нашла программупо поиску.но в ней проблема в том что она сразу перебрасывает пользователя на ячейку с похожим словом.а мне необходимо что пользователь выбирал из предложенного поиска и его перебрасывали на эту ячейку.так сказать.
Код:
Sub bb()
Dim ac As Range
Set ac = ActiveCell
Worksheets.Select
Range("C:C,I:I,O:O").Select
On Error Resume Next
Selection.Find(InputBox("Введите слово"), , xlFormulas, xlPart).Select
If Err Then
ac.Parent.Activate
ac.Select
MsgBox "Не найдено"
End If
End Sub
_____
у меня была уже идея Создала форму.поместила TextBox и ListBox. и кнопку. думаю пользователь вводит часть слова и результат поиска выводиться на ListBox.но не знаю как ее осуществить.

Последний раз редактировалось Настя Белова; 28.03.2014 в 14:19.
Настя Белова вне форума Ответить с цитированием
Старый 28.03.2014, 14:39   #2
Настя Белова
Пользователь
 
Регистрация: 28.03.2014
Сообщений: 29
Восклицание НАподоби

НАподоби этого необходимо мне.Но эта программа ищет только на одном листе
Код:
Private Sub ListBox1_Click()
    If ListBox1.ListIndex = -1 Then Exit Sub
    Cells(ListBox1.Value, 1).Select
End Sub
Код:
Private Sub TextBox1_Change()
Dim j As Long, i As Long
ListBox1.Clear
'при отсутствии символов для поиска - выход
   If Len(TextBox1.Value) = 0 Then Exit Sub   
   j = 0
'для одного символа поиск осуществляем по первой букве
If Len(TextBox1.Value) = 1 Then
    For i = 7 To Cells(Rows.Count, 1).End(xlUp).Row
        If UCase(Left(Cells(i, 1), 1)) = UCase(TextBox1.Value) Then
            ListBox1.AddItem i
            ListBox1.List(j, 1) = Cells(i, 1)
            j = j + 1
        End If
    Next i
    'если найден только один эл-т, то переходим к нему
    If j = 1 Then Cells(ListBox1.List(0, 0), 1).Select
    Exit Sub
End If 
For i = 7 To Cells(Rows.Count, 1).End(xlUp).Row
    If InStr(1, UCase(Cells(i, 1)), UCase(TextBox1.Value)) > 0 Then
       ListBox1.AddItem i
       ListBox1.List(j, 1) = Cells(i, 1)
       j = j + 1
    End If
Next i
   'если найден только один эл-т, то переходим к нему
   If j = 1 Then Cells(ListBox1.List(0, 0), 1).Select
End Sub
Настя Белова вне форума Ответить с цитированием
Старый 28.03.2014, 19:59   #3
Настя Белова
Пользователь
 
Регистрация: 28.03.2014
Сообщений: 29
По умолчанию

Код:
Private Sub TextBox1_Change()
    ListBox1.Clear
    
    Dim iText$, iAddress$, iCount&, iList As Worksheet, iCell As Range
    iText = TextBox1.Value
    
    If iText <> "" Then 'If Len(iText) > 0
       For Each iList In ThisWorkbook.Worksheets
           Set iCell = iList.UsedRange.Find(iText, , xlValues, xlPart)
           If Not iCell Is Nothing Then
              iAddress = iCell.Address
              Do
                   ListBox1.AddItem
                   ListBox1.List(iCount, 0) = iCell.Value
                   ListBox1.List(iCount, 1) = iCell.Address(, , , True)
                   iCount = iCount + 1
              Loop While iCell.Address <> iAddress
           End If
       Next
    End If
End Sub

Private Sub ListBox1_Click()
    If ListBox1.ListIndex > -1 Then
       Application.Goto Application.Range(ListBox1.List(ListBox1.ListIndex, 1))
    End If
End Sub
_____
как сузить поиск.сделать по всем листам но по столбцам C,I,O
Настя Белова вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по листам ogololobov2009 Microsoft Office Excel 2 20.05.2011 18:27
перенос данных из 1 файла в другой по разным листам Екатрина Microsoft Office Excel 11 10.02.2011 13:03
Как организовать поиск значения ячейки по всем листам alec Microsoft Office Excel 7 01.05.2010 17:01
Поиск данных по всем листам книги demon_81 Microsoft Office Excel 0 20.01.2010 11:28
Окно для поиска ячейки по всем листам. TiG Microsoft Office Excel 10 07.11.2009 10:20