Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Не отображаются все данные в поле листбокса на форме. - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не отображаются все данные в поле листбокса на форме. (Макросы/Sub)
Не отображаются все данные в поле листбокса на форме.
parovoznik Дата: Пятница, 29.03.2019, 14:01 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
Добрый день.
Имеется форма с поиском по первой букве. Если вводить по коду или названию станции ,то не отображаются данные столбец 3.
Если в поле текста ввести * ,то все колонки отображаются.
Как исправить ,код что бы при вводе кода или названия станции отображались все столбцы в листбоксе?
К сообщению приложен файл: 8278568.xlsm (24.3 Kb)
 
Ответить
СообщениеДобрый день.
Имеется форма с поиском по первой букве. Если вводить по коду или названию станции ,то не отображаются данные столбец 3.
Если в поле текста ввести * ,то все колонки отображаются.
Как исправить ,код что бы при вводе кода или названия станции отображались все столбцы в листбоксе?

Автор - parovoznik
Дата добавления - 29.03.2019 в 14:01
skais Дата: Пятница, 29.03.2019, 14:50 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 236
Репутация: 29 ±
Замечаний: 20% ±

Excel 2010
Решение.
[vba]
Код
Private iArr As Variant
Private Sub Btn_Exit_Click(): Unload Me: End Sub 'Кнопка Закрыть
Private Sub UserForm_Initialize()
    With Worksheets("справочник")
         iArr = .Range(.Cells(2, 1), .Cells(.Rows.Count, 3).End(xlUp)).Value
    End With
End Sub
Private Sub txtb_Search_Change()
    Dim iText$, iCount&
   On Error Resume Next
'     Me.Width = 295
    iText = Trim(txtb_Search.Value)
    With List_РезультатыПоиска
         Select Case iText
             Case "":   .Clear
                Label_РезультатыПоиска.Caption = "Введите текст для поиска нужной записи, или * для отображения  всех записей БД"
             Case "*":  .List = iArr
                Label_РезультатыПоиска.Caption = "Общее кол-во записей в базе данных: " & UBound(iArr)
             Case Else: .Clear
             For iCount = 1 To UBound(iArr)
                 If InStr(1, iArr(iCount, 1), iText, vbTextCompare) > 0 Then
                    .AddItem iArr(iCount, 1)
                    .List(.ListCount - 1, 1) = iArr(iCount, 2)
                    .List(.ListCount - 1, 2) = iArr(iCount, 3)
                 End If
             Next
             Label_РезультатыПоиска.Caption = "Найдено записей: " & .ListCount _
             & " (Общее количество записей в базе данных: " & iCount - 1 & ")"
         End Select
    End With
End Sub
[/vba]
К сообщению приложен файл: ____.xlsm (24.1 Kb)
 
Ответить
СообщениеРешение.
[vba]
Код
Private iArr As Variant
Private Sub Btn_Exit_Click(): Unload Me: End Sub 'Кнопка Закрыть
Private Sub UserForm_Initialize()
    With Worksheets("справочник")
         iArr = .Range(.Cells(2, 1), .Cells(.Rows.Count, 3).End(xlUp)).Value
    End With
End Sub
Private Sub txtb_Search_Change()
    Dim iText$, iCount&
   On Error Resume Next
'     Me.Width = 295
    iText = Trim(txtb_Search.Value)
    With List_РезультатыПоиска
         Select Case iText
             Case "":   .Clear
                Label_РезультатыПоиска.Caption = "Введите текст для поиска нужной записи, или * для отображения  всех записей БД"
             Case "*":  .List = iArr
                Label_РезультатыПоиска.Caption = "Общее кол-во записей в базе данных: " & UBound(iArr)
             Case Else: .Clear
             For iCount = 1 To UBound(iArr)
                 If InStr(1, iArr(iCount, 1), iText, vbTextCompare) > 0 Then
                    .AddItem iArr(iCount, 1)
                    .List(.ListCount - 1, 1) = iArr(iCount, 2)
                    .List(.ListCount - 1, 2) = iArr(iCount, 3)
                 End If
             Next
             Label_РезультатыПоиска.Caption = "Найдено записей: " & .ListCount _
             & " (Общее количество записей в базе данных: " & iCount - 1 & ")"
         End Select
    End With
End Sub
[/vba]

Автор - skais
Дата добавления - 29.03.2019 в 14:50
parovoznik Дата: Пятница, 29.03.2019, 17:00 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 442
Репутация: 26 ±
Замечаний: 0% ±

Excel 2013
skais, спасибо за ответ. hands
 
Ответить
Сообщениеskais, спасибо за ответ. hands

Автор - parovoznik
Дата добавления - 29.03.2019 в 17:00
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Не отображаются все данные в поле листбокса на форме. (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!