Всем доброго времени суток! Во вложении файл excel, на листе DataBase имеется таблица и кнопка вызова UserForm. В UserForm есть ListBox в котором отображаются данные из той самой таблицы. А теперь сам вопрос: Возможно ли осуществить автофильтр в ListBox используя TextBox'ы и ComboBox'ы расположенные над ним? TextBox'ы только для точного поиска, а ComboBox'ы именно для фильтрации как в оригинальном автофильтре excel.
Всем доброго времени суток! Во вложении файл excel, на листе DataBase имеется таблица и кнопка вызова UserForm. В UserForm есть ListBox в котором отображаются данные из той самой таблицы. А теперь сам вопрос: Возможно ли осуществить автофильтр в ListBox используя TextBox'ы и ComboBox'ы расположенные над ним? TextBox'ы только для точного поиска, а ComboBox'ы именно для фильтрации как в оригинальном автофильтре excel.damask_86ru
А какие действия кроме фильтрации вы хотите проводить? Тоже самое: защитить лист и оставить возможность автофильтра. Чем стандартный автофильтр не подходит?
А какие действия кроме фильтрации вы хотите проводить? Тоже самое: защитить лист и оставить возможность автофильтра. Чем стандартный автофильтр не подходит?Leanna
Лучше день потерять, потом за пять минут долететь!
Leanna, у меня есть еще один вопрос по теме. Простите за назойливость. Я даже и не знаю, поймете Вы меня... Возможно ли сделать так, чтобы при выборе в ComboBox1 (тип задания) к примеру "кап.ремонт"он не терял у себя из списка остальные значения, а ComboBox2 (ид.) фильтровался под это значение... в нем должно остаться "20" и "80". И затем при выборе значения из ComboBox2 к примеру "20", он не терял значение "80", а так же происходил фильтр данных ComboBox1, оставив в нем значения "кап.ремонт" и "ремонт". Блин как все запутано.
Leanna, у меня есть еще один вопрос по теме. Простите за назойливость. Я даже и не знаю, поймете Вы меня... Возможно ли сделать так, чтобы при выборе в ComboBox1 (тип задания) к примеру "кап.ремонт"он не терял у себя из списка остальные значения, а ComboBox2 (ид.) фильтровался под это значение... в нем должно остаться "20" и "80". И затем при выборе значения из ComboBox2 к примеру "20", он не терял значение "80", а так же происходил фильтр данных ComboBox1, оставив в нем значения "кап.ремонт" и "ремонт". Блин как все запутано.damask_86ru
Сообщение отредактировал damask_86ru - Воскресенье, 22.02.2015, 11:43
Вот посмотрите, так? Я там добавила невидимый ListBox2 что бы не подгружать каждый раз с листа данные в Listbox 1, я подгружаю массив из ListBox2
Вот посмотрите, так? Я там добавила невидимый ListBox2 что бы не подгружать каждый раз с листа данные в Listbox 1, я подгружаю массив из ListBox2Leanna
Leanna, добрый вечер. Я вложил два файла оригинальной таблицы, посмотрите пожалуйста. Первая сделана по Вашему первому примеру, все работает, как в примере. Второй файл по последнему примеру, и что-то не получается совсем, выдает ошибку. У меня там перевод текста на объектах имеется, который осуществляется в зависимости от выбора языка в ComboBox1, может быть поэтому проблема? Хотя в первом файле так же имеется перевод.
Leanna, добрый вечер. Я вложил два файла оригинальной таблицы, посмотрите пожалуйста. Первая сделана по Вашему первому примеру, все работает, как в примере. Второй файл по последнему примеру, и что-то не получается совсем, выдает ошибку. У меня там перевод текста на объектах имеется, который осуществляется в зависимости от выбора языка в ComboBox1, может быть поэтому проблема? Хотя в первом файле так же имеется перевод.damask_86ru
damask_86ru, Ошибка в том что в вашем случае надо перебирать комбобоксы начиная со второго по седьмой (первый занят). Подправила ещё там по мелочам. Смотрите файлик:
damask_86ru, Ошибка в том что в вашем случае надо перебирать комбобоксы начиная со второго по седьмой (первый занят). Подправила ещё там по мелочам. Смотрите файлик:Leanna
Вот эта конструкция понимаете что делает? Она контролам по очереди имя которых ComboBox2, ComboBox3 ... ComboBox7 по очереди присваивает сброс значения [vba]
Код
For ii = 2 To 7 With Me.Controls("ComboBox" & ii) .ListIndex = -1 End With Next
[/vba]
Вот эта конструкция понимаете что делает? Она контролам по очереди имя которых ComboBox2, ComboBox3 ... ComboBox7 по очереди присваивает сброс значения [vba]
Код
For ii = 2 To 7 With Me.Controls("ComboBox" & ii) .ListIndex = -1 End With Next
Leanna, Спасибо Вам за внимание! Все верно, ошибка была именно в том, что перебор combobox'ов был со 2 по 7. Переделал, чтобы combobox'ы которые отвечают за фильтрацию listbox начинались с 1-го, и теперь все отлично работает! Еще раз, СПАСИБО!
Leanna, Спасибо Вам за внимание! Все верно, ошибка была именно в том, что перебор combobox'ов был со 2 по 7. Переделал, чтобы combobox'ы которые отвечают за фильтрацию listbox начинались с 1-го, и теперь все отлично работает! Еще раз, СПАСИБО!damask_86ru