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

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

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.04.2011, 22:25   #1
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию Форма поиска - задать диапазон поиска

Здравствуйте, уважаемые!
Используя форму поиска, от Hugo121 решил вот сделать ее универсальной, задать все параметры для поиска через текстбоксы.
Все получается вроде, только вот никак не могу справиться с заданием диапазона поиска. т.е. строку stolb = Array(1, 2, 5) написать как stolb = Array(поиск) .
Вот как задать этот самый поиск что-то через текстбокс никак не получается у меня.
Подскажите, пожалуйста.
Спасибо.
Вложения
Тип файла: zip ПоискФорма_Hugo.zip (15.4 Кб, 37 просмотров)
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 20.04.2011, 23:31   #2
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Здравствуйте, уважаемые!
Используя форму поиска, от Hugo121 решил вот сделать ее универсальной, задать все параметры для поиска через текстбоксы.
Все получается вроде, только вот никак не могу справиться с заданием диапазона поиска. т.е. строку stolb = Array(1, 2, 5) написать как stolb = Array(поиск) .
Вот как задать этот самый поиск что-то через текстбокс никак не получается у меня.
Подскажите, пожалуйста.
Спасибо.

Код:
stolb = Split(поиск, ",")   'Array(1, 2, 5)     'задаем столбцы для поиска
может так в массив преобразрвать
Код:
 strokaLast = Cells(Rows.Count, CLng(--stolb(0))).End(xlUp).Row
здесь к числу надо привести и массив с 0 индекса
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 20.04.2011, 23:46   #3
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Код:
For i = strokaFirst To strokaLast
здесь наверно лучше проверку длбавить
Код:
if strokaFirst < strokaLast then exit for
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 20.04.2011, 23:49   #4
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

R Dmitry, спасибо!
Все отлично получилось!
Все работает!!!
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 20.04.2011, 23:52   #5
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
здесь наверно лучше проверку длбавить
Да, добавил, спасибо.
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 21.04.2011, 00:01   #6
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Цитата:
Сообщение от VictorM Посмотреть сообщение
Да, добавил, спасибо.
Да не за что
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 21.04.2011, 00:01   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Может так подойдет,работает,проверял

Код:
Private Sub TextBox1_Change()
    stolb = Array(поиск)
    
     stolb = Split(stolb(0), ",", -1)
    'Array(1, 2, 5)     'задаем столбцы для поиска А-1 В-2 С-3 и тд
'stolb = Array(stolbV)
'очистка списка найденых элементов
    ListBox1.Clear
    'при отсутствии символов для поиска - выход
    If Len(TextBox1.Value) = 0 Then Exit Sub
    'вычисляем номер последней строки, до которой осуществляем поиск
  
    'задаем индекс первого элемента списка ListBox1
    j = 0
    'переводим искомый текст в вверхний регистр
    textS = UCase(TextBox1.Value)
    For ind = LBound(stolb) To UBound(stolb)
      strokaLast = Cells(Rows.Count, CInt(stolb(ind))).End(xlUp).Row
    
        For i = strokaFirst To strokaLast
        
            'для одного символа
            If Len(TextBox1.Value) = 1 Then
                If UCase(Left(Cells(i, CInt(stolb(ind))), 1)) = textS Then
                    'при совпадении добавляем элемент в список
                    ListBox1.AddItem i
                    ListBox1.List(j, 1) = Cells(i, CInt(stolb(ind)))
                    'задаем индекс для следующего элемента списка
                    j = j + 1
                End If

                'для двух и более символов
            Else
                If InStr(1, UCase(Cells(i, CInt(stolb(ind)))), textS) > 0 Then
                    'при совпадении добавляем элемент в список
                    ListBox1.AddItem i
                    ListBox1.List(j, 1) = Cells(i, CInt(stolb(ind)))
                    'задаем индекс для следующего элемента списка
                    j = j + 1
                End If

            End If
        Next
    Next
    'если найден только один эл-т, то переходим к нему
    If j = 1 Then Cells(ListBox1.List(0, 0), stolbV).Select
End Sub
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 21.04.2011, 00:06   #8
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
Может так подойдет
Конечно подойдет!
Все отлично работает, спасибо!!!
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Старый 21.04.2011, 00:08   #9
R Dmitry
Форумчанин
 
Регистрация: 07.03.2010
Сообщений: 796
По умолчанию

Виктор и определение последней строки как у doober в цикл внести, просто в коде перед циклом и если первый столб пустой то ...
Логика?!.... она где то рядом... E_mail: dg_rusak@mail.ru Если спасибо мало: Яндекс . Деньги - 41001731366021 WM R269866874234
R Dmitry вне форума Ответить с цитированием
Старый 21.04.2011, 00:12   #10
VictorM
Старожил
 
Аватар для VictorM
 
Регистрация: 15.05.2008
Сообщений: 2,058
По умолчанию

Цитата:
определение последней строки как у doober в цикл внести,
Да, я уже так сделал
"Дайте людям рыбы, и вы накормите их на весь день; научите их ловить рыбу - и вы накормите их на всю жизнь"
"Большое спасибо" - Z261597841314, R208907249777, U447361470499
VictorM вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как задать диапазон времени Dmitrys Microsoft Office Excel 3 11.02.2011 16:51
Диапазон поиска в БД true1 Помощь студентам 1 25.11.2010 09:20
Форма для поиска нужных значений Fezdipekla Microsoft Office Access 1 01.04.2010 19:05
Форма поиска kofftun4eva Microsoft Office Access 1 17.03.2009 16:02
Форма для поиска по базе данных Vitec PHP 6 08.10.2007 20:15