Добрый день! Хочу настроить поиск строки по артикулу через TextBox и Кнопку. Подскажите код на кнопку, чтобы при вводе цифр в TextBox искал соответствующую строку
Поиск строки по артикулу через TextBox
28.05.2017 11:29:16
|
|
|
|
28.05.2017 11:44:08
смотрите файл
|
|
|
|
28.05.2017 12:12:34
Ваш пример работает. А как сделать чтобы целую строчку сравнивал. А то когда вводишь 1 он находит все строчки с единицей, а нужно только одну 1.
Изменено: |
|
|
|
28.05.2017 12:30:37
Спасибо огромное за оба кода. Все работает.
|
|
|
|
28.05.2017 14:19:14
Тут проблемка в скорости фильтрации. У меня таблица 2008 строк. Можно как нибудь остановить код если проверяемая ячейка пустая. Данные записываются друг за другом. И поэтому после пустой ячейки искать смысла нет.
Вот код который составил
Изменено: |
|||
|
|
28.05.2017 14:58:07
Вариант с использованием автофильтра:
Могу предложить еще такой вариант. Данные будут находиться на одном листе, а TextBox и кнопка на другом. И макрос будет вставлять на лист данные, а не скрывать.
Изменено: |
|||||
|
|
28.05.2017 16:47:00
Как сделать чтобы после выполнения кода
|
|||
|
|
28.05.2017 17:12:10
Не понятна ситуация. Вы вводите данные в TextBox. Он находится вверху. Затем щелкаете кнопку. Кнопка тоже вверху. После работы макроса так и будет отображаться верх листа.
Вообще, прокрутить экран можно так. Этот код прокручивает так, чтобы была видна ячейка "A1":
Еще способ прокрутки. В этом случае выделяется ячейка "A1" и экран прокручивается так, чтобы отобразить "A1":
Изменено: |
|||||
|
|
28.05.2017 17:26:46
Я оптимизировал макрос, чтобы макрос работал быстрее. Правильнее сразу все скрыть, а потом отображать нужные, т.к. результат поиска - это, как правило, небольшое количество строк.
Для этого макроса в столбце "B" должен быть текст. Если будут числа, то макрос может неправильно найти последнюю строку.
|
|||||
|
|
13.07.2019 20:24:54
ищу макрос поиска со скрытием строк и поиску по части слова в диапазоне таблицы - набрел на эту тему
слепил макрос - вроде все ищет и работает Только одна заминка - сейчас ищет только в диапазоне arr() = Range("E1:E" & lr).Value lr = Cells(Rows.Count, "A").End(xlUp).Row а как сделать чтобы искал так arr() = Range("A4:M" & lr).Value ? - но так не прокатывает те в массив arr() както надо загнать значения диапазона ячеек Range("A4:M" & lr).Value (а не одного столбца) макрос рабочий прилагаю
|
|||
|
|
13.07.2019 20:46:05
загнать-то как раз - нечего делать:
и еще... совершенно не логично, если не сказать хуже, в комментарии к макросу, который ищет в диапазоне писать "макрос поиска на листе", прочитав надпись можно потом сильно удивляться "что ж он не нашел на листе?, если данные есть"!!!
Изменено:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||
|
|
13.07.2019 20:48:09
те както If InStr(1, arr(i, 1), strText, vbTextCompare) = 0 Then переделать ?
|
|
|
|
13.07.2019 22:11:08
Согласие есть продукт при полном непротивлении сторон
|
|||
|
|
13.07.2019 23:03:12
ничего не понял пока - в общем выкладываю файл с примером и код
Дело в том что при arr() = Range("B1:B" & lr).Value - все корректно ищет и скрывает строки - но только по столбцу B (а не по всему диапазону A4:M таблицы) - строки со значениями поиска видимы, строки без значений поиска скрыты При arr() = Range("A4:M" & lr).Value - все некорректно идет - не работает как надо - нужные строки со значениями поиска скрыты, а строки без значений поиска видимы |
|||
|
|
14.07.2019 01:21:19
если использовать вариант от
Изменено: |
|||
|
|
14.07.2019 01:53:45
когда начнете использовать код, как написал Sanja, тогда скажете что не работает код от Sanja, а пока код пишете Вы не понимая толком что там пишете, очевидно что бестолковый код не должен работать, может начать работать только благодаря какой-то счастливой случайности
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|
|
|
14.07.2019 09:24:02
С find работает ниже код нормально - но предполагается что в таблице будет 2-3 тыс строк - наверно тупить будет
Поэтому вопрос выше с массивами актуален - как же его переделать чтоб корректно работал ?
|
|||
|
|
14.07.2019 12:16:20
если хотите, чтобы кто-то Вам помог - обьясните задачу, приложите файл с данными или рекомендация выше - переделывать самостоятельно пока не заработает как нужно
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||
|
|
14.07.2019 13:15:49
дак я файл пример приложил выше и все написал - еще раз
Дело в том что при arr() = Range("B1:B" & lr).Value - все корректно ищет и скрывает строки - но только по столбцу B (а не по всему диапазону A4:M таблицы) - строки со значениями поиска видимы, строки без значений поиска скрыты При arr() = Range("A4:M" & lr).Value - все некорректно идет - не работает как надо - нужные строки со значениями поиска скрыты, а строки без значений поиска видимы
|
|||
|
|
14.07.2019 14:45:46
я расспрашиваю Вас не о макросах, которые Вы написали, а о задаче которую решаете
в чем задача?
Изменено:
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|
|
|
14.07.2019 15:26:17
Задача- поиск в диапазоне Range("A4:M" & lr).Value путем скрытия строк - если в строке в ячейках диапазона нет значения поиска.Если в строке есть значение поиска по частичному совпадению - то строка остается видимой, если нет то скрывается строка). Тк таблица будет большой под 2-3 тыс записей (будет пополнятся постоянно) лучше сделать через массив - что и пытаюсь сделать. Пример выше.
|
|
|
|
14.07.2019 15:48:04
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
|
|||
|
|
14.07.2019 16:18:19
Согласие есть продукт при полном непротивлении сторон
|
|||
|
|
14.07.2019 16:24:04
Благодарю Ігор Гончаренко и Sanja - за то что помогли !
Проверил - макрос Игоря работает нормально, а вот макрос Sanja к сожалению не заработал как надо. Файл с обоими макросами во вложении |
|
|
|
14.07.2019 16:25:02
Я исправил макрос выше
Согласие есть продукт при полном непротивлении сторон
|
|
|
|
14.07.2019 16:32:25
Еще раз благодарю
3 варианта получается во вложении |
||||
|
|
|||