Страницы: 1
RSS
Форма ввода с поиском по первым буквам
 
Здравствуйте, уважаемые знатоки! Помогите пожалуйста с формой ввода:
на листе1 есть таблица, в которую с помощью формы ввожу наименование товара,
в форме в Listbox1 отображаются 4 столбца таблицы "Склад".  
При вводе текста в textbox1 происходит поиск по первым буквам.
Всё работает, кроме одного: при вводе текста в listbox1 отображается не 4 столбца, а только столбец "Наименование".
Подскажите пожалуйста, как сделать отображение всех четырех столбцов?
Изменено: Дмитрий - 16.01.2022 17:12:58
 
Цитата
написал:
Подскажите пожалуйста, как сделать отображение всех четырех столбцов
Cells(1,4)
1 - строка
4 - столбец
Отображайте по столбца или строкам - как хотите. Вопрос в чем?
Изменено: _Igor_61 - 16.01.2022 18:40:45
 
_Igor_61, что это значит?
 
Дмитрий, это значит что нужно обозначить конкретную Вашу проблему, т.е. что именно в коде не срастается, где и в каком месте.
Цитата
Дмитрий написал:
Подскажите пожалуйста, как сделать отображение всех четырех столбцов?
Вопрос похоже для ТС философский - что значит "отображение"  :)
Дмитрий, Вы предлагаете поискать где в Вашем коде что и как и откуда берется? И что значит "отобразить"? Без обид, сформулируйте задачу конкретней, убрав из нее лишнее
 
_Igor_61,  возможно я неправильно выразился. вот код, при инициализации формы в листбоксе выводятся данные из выбранного диапазона, который состоит из 4-х столбцов.
затем вводим в textbox1 текст для поиска наименования, при этом в листбоксе выводятся данные только из первого столбца, а хотелось бы так же из всего диапазона. Я в макросах не специалист, только начинаю, подскажите пожалуйста, как это сделать.  
Изменено: Дмитрий - 16.01.2022 19:15:55
 
Дмитрий,  код следует оформлять соответствующим тегом: ищите такую кнопку <...> и исправьте своё сообщение.
И не растягивайте его пустыми строками.
Изменено: Юрий М - 16.01.2022 19:07:21
 
Код
Private Sub UserForm_Initialize()
   X = Range("Sclad[[Наименование]:[Остаток]]").Value
   Me.ListBox1.List = X
   TextBox1.SetFocus
End Sub

Private Sub TextBox1_Change()
Dim i As Long, s As String, txt As String, lt As Long

txt = TextBox1.Text: lt = Len(txt)
For i = 1 To UBound(X)    ' поиск по первым буквам (Search by first letter)
   If txt = Mid(X(i, 1), 1, lt) Then s = s & "~" & X(i, 1)
Next i
Me.ListBox1.List = Split(Mid(s, 2), "~")
If lt = 0 Then ListBox1.Clear

End Sub
Изменено: Дмитрий - 16.01.2022 19:10:33
 
Может так надо
 
Цитата
написал:
вводим в textbox1 текст для поиска наименования, при этом в листбоксе выводятся данные
Я ввел в ячейку А1 цифру "8"  а в ячейку "B1"  слово "забор". Почему в "С1" не получается результат "10"?
Почему я делаю поиск по первым буквам а 4 столбец при этом не отображается?
Дмитрий, это о названии темы. Обдумайте т предложите, модераторы заменят. Форум не персонально для Вас.
X = Range("Sclad[[Наименование]:[Остаток]]").Value
   Me.ListBox1.List = X
На мой рабоче-крестьянский взгляд риск. Лучше с простыми диапазонами работать макросами. Никто не знает как в какой ситуации себя поведет умная таблица, а еще если в новой неизвестной версии... :)
Изменено: _Igor_61 - 16.01.2022 19:39:23
 
Евгений Смирнов, спасибо огромное, всё работает!
 
Дмитрий Я к гроссмейстерам не отношусь, может там кривовато написал,  первый раз с LIstBox работал полностью не разобрался с ним.
 
Евгений Смирнов, нашел недочет: если в наименовании есть несколько позиций, начинающихся с одинаковой буквы, то в листбокс выводит только первую сверху(
если не сложно, посмотрите пожалуйста!
 
Дмитрий Сходу не могу придумать как это сделать, а время у нас уже позднее пора спать. Завтра подумаю с утречка.
 
Евгений Смирнов, спасибо вам огромное  за помощь, буду ждать!
 
Подкорректировал код от Евгений Смирнов (только дописал, чтобы если в наименовании есть несколько позиций, начинающихся с одинаковой буквы, в ListBox  они выводились)
 
Вроде получилось
Изменено: Евгений Смирнов - 17.01.2022 04:58:19
 
Евгений Смирнов, спасибо огромное вам за помощь! Ещё вопрос, можно ли в вашем примере сделать, чтобы после ввода в листбоксе выводилась не вся таблица, а только найденные позиции без пустых строк?

Александр Макаров, извините, не увидел сразу ваше сообщение. В вашем примере всё прекрасно работает, спасибо большое за помощь!
 
Дмитрий посмотрите получилось ли у меня. Мне интересно
 
Евгений Смирнов, получилось, спасибо вам огромное!
Страницы: 1
Наверх