Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ИДЕЯ!!! Поиск в ListBox. Как заменить "пробел" на "звездочку" для ускорения поиска.... / 5 сообщений из 5, страница 1 из 1
09.11.2008, 15:03:41
    #35642368
Dan-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ИДЕЯ!!! Поиск в ListBox. Как заменить "пробел" на "звездочку" для ускорения поиска....
ВОПРОС №1:
При поиске в ListBox можно пользоваться выражением такого типа "*кров*5*55". При этом будет найдена строка "Саморез кровельный / 5 х 55."
Пример в прилагаемом файле.
Возникла идея вводить при поиске вместо "*" - "пробел", а уже в коде заменять пробел на звездочку.
Это существенно добавит удобства для оператора.
Кстати, не помешал бы "выключатель для замены на звездочки"-это только сейчас пришло в голову.

ВОПРОС №2
Как програмно запретить ввод в TextBox любых значений кроме целых положительных, принадлежащих диапазону от 1 до 124868, например...
Неудачный пример в файле
...
Рейтинг: 0 / 0
10.11.2008, 17:05:13
    #35644597
Neirfy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ИДЕЯ!!! Поиск в ListBox. Как заменить "пробел" на "звездочку" для ускорения поиска....
Как вариант приходит в голову поиск с циклом по instr() от звездочки до звездочки, потом запоминаешь последнюю звездочку и заново поиск. Вывод тех строк, которые прошли в цикле все "И". Писать весь код времени увы нет, тутошние монстры может что-то быстрее предложат
...
Рейтинг: 0 / 0
11.11.2008, 10:03:59
    #35645667
A-Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ИДЕЯ!!! Поиск в ListBox. Как заменить "пробел" на "звездочку" для ускорения поиска....
Сделай так:
ListBox1.Selected(.Match( Replace(TextBox2.Text, " ", "*") & "*", .Transpose([ФОРМ_НАИМЕНОВАНИЕ]), 0) - 2) = True
...
Рейтинг: 0 / 0
11.11.2008, 10:11:15
    #35645683
A-Nik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ИДЕЯ!!! Поиск в ListBox. Как заменить "пробел" на "звездочку" для ускорения поиска....
А с выключателем будет как-то так:
ListBox1.Selected(.Match( IIf(выключатель = True, Replace(TextBox2.Text, " ", "*"), TextBox2.Text) & "*", .Transpose([ФОРМ_НАИМЕНОВАНИЕ]), 0) - 2) = True
...
Рейтинг: 0 / 0
12.11.2008, 01:12:47
    #35648062
Dan-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ИДЕЯ!!! Поиск в ListBox. Как заменить "пробел" на "звездочку" для ускорения поиска....
Спасибо за подсказку. Завтра попробую.
Я пошел более безумным путем: сделал около 300 кнопок. расположил их на мультиформах разбив их на "смысловые группы".
Каждую кнопку обозвал сообразно номеру идентификатора.
Например: CommandButton_В007
Затем на в VBA на форме дважды щелкнул все кнопки, при этом образовалась длинная колонка макросов:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
Private Sub CommandButton_В007_Click()

End Sub

Private Sub CommandButton_В009_Click()

End Sub

Private Sub CommandButton_Г001_Click()

End Sub

Private Sub CommandButton_Г006_Click()

End Sub

Private Sub CommandButton_Д001_Click()

End Sub

Private Sub CommandButton_Д005_Click()

End Sub

Private Sub CommandButton_Д008_Click()

End Sub

Затем я их скопировал на лист ExceL
и через формулы получил колонку требуемых макросов:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Private Sub CommandButton_В007_Click()
UserForm1.TextBox1.Text = "В007"
ОБНОВЛЕНИЕ_КНОПКИ
End Sub
Private Sub CommandButton_В009_Click()
UserForm1.TextBox1.Text = "В009"
ОБНОВЛЕНИЕ_КНОПКИ
End Sub
Private Sub CommandButton_Г001_Click()
UserForm1.TextBox1.Text = "Г001"
ОБНОВЛЕНИЕ_КНОПКИ
End Sub
Private Sub CommandButton_Г006_Click()
UserForm1.TextBox1.Text = "Г006"
ОБНОВЛЕНИЕ_КНОПКИ
End Sub

Сложность была только в одном - как получить кавычки в формуле.
Сделал просто:

="UserForm1.TextBox1.Text = "&"''"&ПСТР(G89;27;4)&"''"

использовал в формуле одинарные кавычки, а потом скопировал диапазон, вставил значения и сразу заменил ' на "

В итоге менеджерам понравилось. Получилось реально удобнее чем в 1С...

Хотя конечно надо доводить до ума...
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / ИДЕЯ!!! Поиск в ListBox. Как заменить "пробел" на "звездочку" для ускорения поиска.... / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]