Здравствуйте, уважаемые знатоки! Помогите пожалуйста с формой ввода: на листе1 есть таблица, в которую с помощью формы ввожу наименование товара, в форме в Listbox1 отображаются 4 столбца таблицы "Склад". При вводе текста в textbox1 происходит поиск по первым буквам. Всё работает, кроме одного: при вводе текста в listbox1 отображается не 4 столбца, а только столбец "Наименование". Подскажите пожалуйста, как сделать отображение всех четырех столбцов?
Дмитрий, это значит что нужно обозначить конкретную Вашу проблему, т.е. что именно в коде не срастается, где и в каком месте.
Цитата
Дмитрий написал: Подскажите пожалуйста, как сделать отображение всех четырех столбцов?
Вопрос похоже для ТС философский - что значит "отображение" Дмитрий, Вы предлагаете поискать где в Вашем коде что и как и откуда берется? И что значит "отобразить"? Без обид, сформулируйте задачу конкретней, убрав из нее лишнее
_Igor_61, возможно я неправильно выразился. вот код, при инициализации формы в листбоксе выводятся данные из выбранного диапазона, который состоит из 4-х столбцов. затем вводим в textbox1 текст для поиска наименования, при этом в листбоксе выводятся данные только из первого столбца, а хотелось бы так же из всего диапазона. Я в макросах не специалист, только начинаю, подскажите пожалуйста, как это сделать.
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
написал: вводим в textbox1 текст для поиска наименования, при этом в листбоксе выводятся данные
Я ввел в ячейку А1 цифру "8" а в ячейку "B1" слово "забор". Почему в "С1" не получается результат "10"? Почему я делаю поиск по первым буквам а 4 столбец при этом не отображается? Дмитрий, это о названии темы. Обдумайте т предложите, модераторы заменят. Форум не персонально для Вас. X = Range("Sclad[[Наименование]:[Остаток]]").Value Me.ListBox1.List = X На мой рабоче-крестьянский взгляд риск. Лучше с простыми диапазонами работать макросами. Никто не знает как в какой ситуации себя поведет умная таблица, а еще если в новой неизвестной версии...
Евгений Смирнов, нашел недочет: если в наименовании есть несколько позиций, начинающихся с одинаковой буквы, то в листбокс выводит только первую сверху( если не сложно, посмотрите пожалуйста!
Подкорректировал код от Евгений Смирнов (только дописал, чтобы если в наименовании есть несколько позиций, начинающихся с одинаковой буквы, в ListBox они выводились)
Евгений Смирнов, спасибо огромное вам за помощь! Ещё вопрос, можно ли в вашем примере сделать, чтобы после ввода в листбоксе выводилась не вся таблица, а только найденные позиции без пустых строк?
Александр Макаров, извините, не увидел сразу ваше сообщение. В вашем примере всё прекрасно работает, спасибо большое за помощь!