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

Вход

Регистрация

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

 

= Мир MS Excel/Поиск при помощи цикла и Листбокс - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Поиск при помощи цикла и Листбокс
Dмитрий Дата: Воскресенье, 06.07.2014, 18:25 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Добрый день! Не могу найти проблему в коде. Работает через раз.
Суть вот в чем: организован небольшой поиск через Листбокс. На Форме1 - заполнение всех данных. На Форме2 - возможность более быстрого поиска. При выборе на Форме2 - переход на Форму1 и выделение соответствующей строки.
К сообщению приложен файл: 7216457.xlsb (25.3 Kb)


Сообщение отредактировал Dмитрий - Воскресенье, 06.07.2014, 19:31
 
Ответить
СообщениеДобрый день! Не могу найти проблему в коде. Работает через раз.
Суть вот в чем: организован небольшой поиск через Листбокс. На Форме1 - заполнение всех данных. На Форме2 - возможность более быстрого поиска. При выборе на Форме2 - переход на Форму1 и выделение соответствующей строки.

Автор - Dмитрий
Дата добавления - 06.07.2014 в 18:25
Dмитрий Дата: Воскресенье, 06.07.2014, 18:49 | Сообщение № 2
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Сорри, файл примера получился неудачный, сам не разобрался, что там к чему %) . Сейчас поправлю
 
Ответить
СообщениеСорри, файл примера получился неудачный, сам не разобрался, что там к чему %) . Сейчас поправлю

Автор - Dмитрий
Дата добавления - 06.07.2014 в 18:49
Dмитрий Дата: Воскресенье, 06.07.2014, 19:31 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Поменял файл в сообщении 1. Пояснил на Листе 2
 
Ответить
СообщениеПоменял файл в сообщении 1. Пояснил на Листе 2

Автор - Dмитрий
Дата добавления - 06.07.2014 в 19:31
doober Дата: Понедельник, 07.07.2014, 02:27 | Сообщение № 4
Группа: Друзья
Ранг: Ветеран
Сообщений: 995
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
Немного модеренизировал и убрал ошибку.
Задержка нужна доля предотвращения клика по листбоксу1
К сообщению приложен файл: 7216457-1-.xlsb (26.3 Kb)


 
Ответить
СообщениеНемного модеренизировал и убрал ошибку.
Задержка нужна доля предотвращения клика по листбоксу1

Автор - doober
Дата добавления - 07.07.2014 в 02:27
Dмитрий Дата: Понедельник, 07.07.2014, 14:24 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
doober, Спасибо за помощь. В файле примере работает все как должно быть. Перенес в оригинал - та же песня.
Почему не работает если записать в одну процедуру, например вот так:
[vba]
Код
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'lr1 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row
Dim R As Integer ', wr As Integer

R = ListBox1.List(ListBox1.ListIndex, 0)

For n = 0 To UserForm1.ListBox1.ListCount - 1
If Val(UserForm1.ListBox1.List(n, 3)) = R Then
UserForm1.ListBox1.Selected(n) = True
End If

Next
'UserForm1.Calc R
UserForm2.Hide

End Sub
[/vba]
 
Ответить
Сообщениеdoober, Спасибо за помощь. В файле примере работает все как должно быть. Перенес в оригинал - та же песня.
Почему не работает если записать в одну процедуру, например вот так:
[vba]
Код
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
'lr1 = Sheets("Лист2").Cells(Rows.Count, 1).End(xlUp).Row
Dim R As Integer ', wr As Integer

R = ListBox1.List(ListBox1.ListIndex, 0)

For n = 0 To UserForm1.ListBox1.ListCount - 1
If Val(UserForm1.ListBox1.List(n, 3)) = R Then
UserForm1.ListBox1.Selected(n) = True
End If

Next
'UserForm1.Calc R
UserForm2.Hide

End Sub
[/vba]

Автор - Dмитрий
Дата добавления - 07.07.2014 в 14:24
millik Дата: Понедельник, 07.07.2014, 15:29 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 2 ±
Замечаний: 0% ±

Excel 2010
а почему не реализовать поиск прямо в этой форме?
добавляете текстбокс на форму и дописываете эвент

Например:
[vba]
Код
Private Sub TextBox1_Change()

Dim SText As String 'текст для поиска
Dim LText As String 'текст в котором ищем
Dim RowCount As Long ' кол-во строк в листбоксе
Dim ColCount As Long 'кол-во колонов к листбоксе
Dim Ci, Cj 'счетчики

RowCount = ListBox1.ListCount
ColCount = ListBox1.ColumnCount
SText = CStr(TextBox1.Value)
For Ci = 0 To RowCount - 1
        For Cj = 1 To ColCount - 1
        LText = CStr(ListBox1.List(Ci, Cj))
            If InStr(1, LText, SText, 1) Then
                ListBox1.ListIndex = Ci
                Exit Sub
            End If
        Next Cj
Next Ci
End Sub
[/vba]


Сообщение отредактировал millik - Понедельник, 07.07.2014, 15:33
 
Ответить
Сообщениеа почему не реализовать поиск прямо в этой форме?
добавляете текстбокс на форму и дописываете эвент

Например:
[vba]
Код
Private Sub TextBox1_Change()

Dim SText As String 'текст для поиска
Dim LText As String 'текст в котором ищем
Dim RowCount As Long ' кол-во строк в листбоксе
Dim ColCount As Long 'кол-во колонов к листбоксе
Dim Ci, Cj 'счетчики

RowCount = ListBox1.ListCount
ColCount = ListBox1.ColumnCount
SText = CStr(TextBox1.Value)
For Ci = 0 To RowCount - 1
        For Cj = 1 To ColCount - 1
        LText = CStr(ListBox1.List(Ci, Cj))
            If InStr(1, LText, SText, 1) Then
                ListBox1.ListIndex = Ci
                Exit Sub
            End If
        Next Cj
Next Ci
End Sub
[/vba]

Автор - millik
Дата добавления - 07.07.2014 в 15:29
Dмитрий Дата: Понедельник, 07.07.2014, 15:43 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Не поверите, но на этой форме попросту уже нет места. Да и не все там так просто. Я представил лишь 10 часть. Второй формой, гораздо нагляднее, короче, без нее НИКАК. Очень жаль, казалось, вопрос то не сложный, но... :(
 
Ответить
СообщениеНе поверите, но на этой форме попросту уже нет места. Да и не все там так просто. Я представил лишь 10 часть. Второй формой, гораздо нагляднее, короче, без нее НИКАК. Очень жаль, казалось, вопрос то не сложный, но... :(

Автор - Dмитрий
Дата добавления - 07.07.2014 в 15:43
doober Дата: Понедельник, 07.07.2014, 16:37 | Сообщение № 8
Группа: Друзья
Ранг: Ветеран
Сообщений: 995
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
Цитата
Перенес в оригинал - та же песня

Будет оригинал,будет и классная песня.


 
Ответить
Сообщение
Цитата
Перенес в оригинал - та же песня

Будет оригинал,будет и классная песня.

Автор - doober
Дата добавления - 07.07.2014 в 16:37
Dмитрий Дата: Понедельник, 07.07.2014, 16:59 | Сообщение № 9
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Будет оригинал,будет и классная песня.

А при чем тут оригинал??? Ведь в файле примере в одной процедуре тоже не работает. В сообщении 5, в принципе, писал.
К сообщению приложен файл: 11111111111.xlsb (27.2 Kb)
 
Ответить
Сообщение
Будет оригинал,будет и классная песня.

А при чем тут оригинал??? Ведь в файле примере в одной процедуре тоже не работает. В сообщении 5, в принципе, писал.

Автор - Dмитрий
Дата добавления - 07.07.2014 в 16:59
doober Дата: Понедельник, 07.07.2014, 17:23 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 995
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
Вы забыли добавить задержку
В моем примере работает все верно




Сообщение отредактировал doober - Понедельник, 07.07.2014, 17:24
 
Ответить
СообщениеВы забыли добавить задержку
В моем примере работает все верно

Автор - doober
Дата добавления - 07.07.2014 в 17:23
Dмитрий Дата: Понедельник, 07.07.2014, 22:33 | Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 91
Репутация: 9 ±
Замечаний: 40% ±

Excel 2010
Всем спасибо. С задержкой работает. Без нее - нет. Каким боком она влияет, непонятно. Может кто-нибудь объяснить??? Так все в норме. Тему можем закрывать.
Может дело совсем не в задержке, а в чем то еще???


Сообщение отредактировал Dмитрий - Понедельник, 07.07.2014, 22:35
 
Ответить
СообщениеВсем спасибо. С задержкой работает. Без нее - нет. Каким боком она влияет, непонятно. Может кто-нибудь объяснить??? Так все в норме. Тему можем закрывать.
Может дело совсем не в задержке, а в чем то еще???

Автор - Dмитрий
Дата добавления - 07.07.2014 в 22:33
doober Дата: Понедельник, 07.07.2014, 23:57 | Сообщение № 12
Группа: Друзья
Ранг: Ветеран
Сообщений: 995
Репутация: 345 ±
Замечаний: 0% ±

Excel 2010
Если вы вторую форму переместите вправо,то все будет работать.
Двойной клик в форме 2,она прячется,ваша мышка на первом листбоксе,вы по инерции еще кликаете по первому листбоксу




Сообщение отредактировал doober - Понедельник, 07.07.2014, 23:59
 
Ответить
СообщениеЕсли вы вторую форму переместите вправо,то все будет работать.
Двойной клик в форме 2,она прячется,ваша мышка на первом листбоксе,вы по инерции еще кликаете по первому листбоксу

Автор - doober
Дата добавления - 07.07.2014 в 23:57
urlchik Дата: Вторник, 12.12.2017, 17:59 | Сообщение № 13
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
а почему не реализовать поиск прямо в этой форме?
добавляете текстбокс на форму и дописываете эвент


Огромное спасибо! Все никак не мог сделать поиск в своей форме...
Ваш код - самое то для меня!


Век живи - век учись!
 
Ответить
Сообщение
а почему не реализовать поиск прямо в этой форме?
добавляете текстбокс на форму и дописываете эвент


Огромное спасибо! Все никак не мог сделать поиск в своей форме...
Ваш код - самое то для меня!

Автор - urlchik
Дата добавления - 12.12.2017 в 17:59
urlchik Дата: Четверг, 14.12.2017, 18:05 | Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
millik, А не подскажите, как реализовать этот поиск с поиском следующего значения? Т.е например: 2 столбца: 1. Город, 2. Рейс автобуса. В Москву идет несколько рейсов. При использовании Вашего поиска на форме находит только первое совпадение "Москва" - рейс 21, Нужно найти второе "Москва" - рейс 122... Можно ли это как-то реализовать? Ну например кнопку добавить "Искать далее" и т.п.

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


Век живи - век учись!
 
Ответить
Сообщениеmillik, А не подскажите, как реализовать этот поиск с поиском следующего значения? Т.е например: 2 столбца: 1. Город, 2. Рейс автобуса. В Москву идет несколько рейсов. При использовании Вашего поиска на форме находит только первое совпадение "Москва" - рейс 21, Нужно найти второе "Москва" - рейс 122... Можно ли это как-то реализовать? Ну например кнопку добавить "Искать далее" и т.п.

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

Автор - urlchik
Дата добавления - 14.12.2017 в 18:05
parovoznik Дата: Четверг, 14.12.2017, 19:32 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 450
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
urlchik, посмотрите пример :)
К сообщению приложен файл: 0874509.xlsm (29.1 Kb)
 
Ответить
Сообщениеurlchik, посмотрите пример :)

Автор - parovoznik
Дата добавления - 14.12.2017 в 19:32
urlchik Дата: Пятница, 15.12.2017, 14:00 | Сообщение № 16
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
parovoznik, Вот файлик! Только вместо городов там ФИО, № кабинета и № телефона! В поиске вбиваю фамилию "Второй" он находит только 2-ю строку! Можно ли добавить кнопку "Искать далее" - чтоб выделилась 4-я с этой фамилией, опять нажимаем "Искать далее" - выделяется следующая строка с этой фамилией и т.д.?

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


Век живи - век учись!
 
Ответить
Сообщениеparovoznik, Вот файлик! Только вместо городов там ФИО, № кабинета и № телефона! В поиске вбиваю фамилию "Второй" он находит только 2-ю строку! Можно ли добавить кнопку "Искать далее" - чтоб выделилась 4-я с этой фамилией, опять нажимаем "Искать далее" - выделяется следующая строка с этой фамилией и т.д.?

Огромное спасибо!

Автор - urlchik
Дата добавления - 15.12.2017 в 14:00
urlchik Дата: Пятница, 15.12.2017, 14:14 | Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 68
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
parovoznik, Исправил файлик - на форме добавил кнопку "искать далее"!
К сообщению приложен файл: 8508618.xlsm (25.1 Kb)


Век живи - век учись!

Сообщение отредактировал urlchik - Пятница, 15.12.2017, 14:16
 
Ответить
Сообщениеparovoznik, Исправил файлик - на форме добавил кнопку "искать далее"!

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

Excel 2010
Вопрос решил! Код тот же что и для поиска вставляем в кнопку "Искать далее" с добавлением переменной +1! Можно сделать даже икать вниз искать вверх! Во втором варианте: "переменная - 2" вместо "переменная + 1"

Всем спасибо за помощь и советы!


Век живи - век учись!
 
Ответить
СообщениеВопрос решил! Код тот же что и для поиска вставляем в кнопку "Искать далее" с добавлением переменной +1! Можно сделать даже икать вниз искать вверх! Во втором варианте: "переменная - 2" вместо "переменная + 1"

Всем спасибо за помощь и советы!

Автор - urlchik
Дата добавления - 26.12.2017 в 16:18
  • Страница 1 из 1
  • 1
Поиск:

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