Страницы: 1
RSS
Фильтр из раскрывающегося списка
 
Добрый день. Есть таблица с текстовыми данными. Нужно в нее добавить фильтр на основе списка. Выбираем из списка текстовое значение и таблица отфильтровывается именно по этому значению. Я добавил Combobox в начале таблицы, прописал макрос фильтра, но фильтр не работает, выдает пустые значения. Не могу разобраться. Подскажите, пожалуйста, как исправить макрос, чтобы все заработало. Таблица во вложении.  
 
Запишите макрорекордером нужную фильтрацию и сравните Ваш и получившийся код
Согласие есть продукт при полном непротивлении сторон
 
Прошу прощения, я еще новичок в VBA, даже не знаю что такое макрорекордер, вот и прошу помощи
 
Цитата
mbog_kungur написал: я еще новичок в VBA
а как-же это?
Цитата
mbog_kungur написал: добавил Combobox в начале таблицы, прописал макрос фильтра
По теме. В Вашем Combobox нет значений для фильтра, ТОЧНО совпадающих с данными в столбце C. Создайте отдельный столбец с данными, точно соответствующими списку фильтрации и по нему фильтруйте

Что такое макрорекордер
Изменено: Sanja - 08.12.2016 09:29:37
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
В Вашем Combobox нет значений для фильтра, ТОЧНО совпадающих с данными в столбце C
Дак в том то и вопрос. В столбце С есть названия города и районов. Мне и нужно создать фильтр, чтобы, выбрав "г. Кунгур", отобразились только те строки, в которых есть слово "г. Кунгур", выбрав "район", отобразились только те строки, в которых есть слово "район", а потом выбрав "Все" - отобразились все строки. Я не могу изменять столбец С!!!
 
Цитата
Sanja написал:
Создайте отдельный столбец с данными, точно соответствующими списку фильтрации и по нему фильтруйте
Создал столбец, изменил макрос. Начал фильтровать, но :
1) Все общие строки пропадают, в том числе и заголовки
2) Если выбираешь "Все" - таблица пустая становится
 
Фильтр перенести на строку 2
код
Код
Private Sub ComboBox1_Click()
    Range("C2").Select
    If ComboBox1 = "Все" Then
        ActiveSheet.Range("$A$1:$H$44").AutoFilter Field:=3
    Else
        ActiveSheet.Range("$A$1:$H$44").AutoFilter Field:=3, Criteria1:=ComboBox1.Text, Operator:=xlOr, Criteria2:="="
    End If
End Sub
 
Спасибо, все заработало. Последние 3 нюанса:
1) при выборе "г. Кунгур", остаются внизу 2 последние общие строки. Можно их убрать при выборе "г. Кунгур"?
2) как сделать чтобы при открытии файла в списке сразу стояло "Все"?
3) при каждом выборе Combobox сдвигается, как его закрепить на одном месте?
Изменено: mbog_kungur - 09.12.2016 02:18:30
 
Вопрос 3) не по теме.
Страницы: 1
Наверх