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

Вход

Регистрация

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

 

= Мир MS Excel/Фильтр по значению из Combox - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Фильтр по значению из Combox
AlexandeR6488 Дата: Четверг, 25.05.2023, 20:20 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Здравствуйте!
Прошу Вашей помощи в решении мини задачки:
Есть макрос который устанавливает фильтр по значению из Combox в колонке А.
А потом в ЛистБокс заносит значения уже отфильтрованого списка.
Но возникла проблема при выборе в Combox второго и остальных значений в ЛистБОкс не правильно переносятся данные.
Что в макросе не так?
К сообщению приложен файл: 147.xlsm (23.9 Kb)
 
Ответить
СообщениеЗдравствуйте!
Прошу Вашей помощи в решении мини задачки:
Есть макрос который устанавливает фильтр по значению из Combox в колонке А.
А потом в ЛистБокс заносит значения уже отфильтрованого списка.
Но возникла проблема при выборе в Combox второго и остальных значений в ЛистБОкс не правильно переносятся данные.
Что в макросе не так?

Автор - AlexandeR6488
Дата добавления - 25.05.2023 в 20:20
Nic70y Дата: Пятница, 26.05.2023, 08:10 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8984
Репутация: 2359 ±
Замечаний: 0% ±

Excel 2010
апдейт - немного скорректировал
[vba]
Код
Private Sub ComboBox1_Change()
    Dim arr()
    a = ComboBox1.Value
    b = Application.CountA(Range("a:a"))
    Range("$A$1:$C$" & b).AutoFilter Field:=1
    n = 0
    For i = 2 To b
        c = Range("a" & i).Value
        d = Range("b" & i).Value
        If c = a Then
            ReDim Preserve arr(n)
            arr(n) = d
            n = n + 1
        End If
    Next
    ListBox1.List = arr()
    Range("$A$1:$C$" & b).AutoFilter Field:=1, Criteria1:=a
End Sub
[/vba]
К сообщению приложен файл: 468.xlsm (25.1 Kb)


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Пятница, 26.05.2023, 12:09
 
Ответить
Сообщениеапдейт - немного скорректировал
[vba]
Код
Private Sub ComboBox1_Change()
    Dim arr()
    a = ComboBox1.Value
    b = Application.CountA(Range("a:a"))
    Range("$A$1:$C$" & b).AutoFilter Field:=1
    n = 0
    For i = 2 To b
        c = Range("a" & i).Value
        d = Range("b" & i).Value
        If c = a Then
            ReDim Preserve arr(n)
            arr(n) = d
            n = n + 1
        End If
    Next
    ListBox1.List = arr()
    Range("$A$1:$C$" & b).AutoFilter Field:=1, Criteria1:=a
End Sub
[/vba]

Автор - Nic70y
Дата добавления - 26.05.2023 в 08:10
AlexandeR6488 Дата: Воскресенье, 28.05.2023, 18:54 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, благодарю за помощь!
 
Ответить
СообщениеNic70y, благодарю за помощь!

Автор - AlexandeR6488
Дата добавления - 28.05.2023 в 18:54
  • Страница 1 из 1
  • 1
Поиск:

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