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

Вход

Регистрация

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

 

= Мир MS Excel/Фильтрация (скрытие) строк по условиям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтрация (скрытие) строк по условиям (скрытие строк по выделенной ячейке в столбце по условиям)
Фильтрация (скрытие) строк по условиям
shelesto Дата: Понедельник, 15.04.2013, 15:30 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Добрый день, есть документ - Таблица обученности персонала с большой шапкой с объединением строк.
Изменять таблицу нельзя, она наиболее наглядна.
Необходимо сделать фильтрацию данных по определенным условиям.
Фильтрация обычным фильтром не подходит, ввиду присутствия объединенных ячеек.

Условия задачи– по выделению какой-либо ячейки столбца выполняется фильтрация (скрываются строки не удовлетворяющие условиям) по определенным значениям. Фильтр прописывается один раз и меняться не будет, всего 3 значения фильтра:

- дата меньше сегодняшней (дата <= сегодня)

- дата в промежутке от "сегодня" до "сегодня+14" (сегодня < дата <= (сегодня+14))

- дата в промежутке от "сегодня+14" до "сегодня+30" ((сегодня+14) < дата <= (сегодня +30))

- дата больше "сегодня+30" (дата > (сегодня +30))

Отдельной кнопкой, будет сброс фильтра, т.е. ПОКАЗАТЬ ВСЕ СТРОКИ.

В списке будет произвольно много фамилий, поэтому четкое указание диапазона не подходит, лист книги, также будет иметь произвольное название, поэтому нельзя привязывать макрос к конкретному имени листа.
К сообщению приложен файл: filtr_po_yslovi.xls (41.5 Kb)
 
Ответить
СообщениеДобрый день, есть документ - Таблица обученности персонала с большой шапкой с объединением строк.
Изменять таблицу нельзя, она наиболее наглядна.
Необходимо сделать фильтрацию данных по определенным условиям.
Фильтрация обычным фильтром не подходит, ввиду присутствия объединенных ячеек.

Условия задачи– по выделению какой-либо ячейки столбца выполняется фильтрация (скрываются строки не удовлетворяющие условиям) по определенным значениям. Фильтр прописывается один раз и меняться не будет, всего 3 значения фильтра:

- дата меньше сегодняшней (дата <= сегодня)

- дата в промежутке от "сегодня" до "сегодня+14" (сегодня < дата <= (сегодня+14))

- дата в промежутке от "сегодня+14" до "сегодня+30" ((сегодня+14) < дата <= (сегодня +30))

- дата больше "сегодня+30" (дата > (сегодня +30))

Отдельной кнопкой, будет сброс фильтра, т.е. ПОКАЗАТЬ ВСЕ СТРОКИ.

В списке будет произвольно много фамилий, поэтому четкое указание диапазона не подходит, лист книги, также будет иметь произвольное название, поэтому нельзя привязывать макрос к конкретному имени листа.

Автор - shelesto
Дата добавления - 15.04.2013 в 15:30
M73568 Дата: Понедельник, 15.04.2013, 16:18 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 197
Репутация: 46 ±
Замечаний: 0% ±

2007-2013
Достаточно разбить ячейку ФИО, и будет вам щастье wink Фильтр по цвету для Excel 2007 и выше прекрасно справится с Вашими запросами
К сообщению приложен файл: 4426038.xls (41.5 Kb)
 
Ответить
СообщениеДостаточно разбить ячейку ФИО, и будет вам щастье wink Фильтр по цвету для Excel 2007 и выше прекрасно справится с Вашими запросами

Автор - M73568
Дата добавления - 15.04.2013 в 16:18
shelesto Дата: Понедельник, 15.04.2013, 20:57 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Цитата (M73568)
Достаточно разбить ячейку ФИО, и будет вам щастье Фильтр по цвету для Excel 2007 и выше прекрасно справится с Вашими запросами


Дело в том, что данное решение не подходит для автоматизации и для людей не знакомых с сортировкой по фильтру сложно будет отсортировать, тем более, что меню сортировки сложное, поэтому нужен именно макрос, но все равно спасибо за совет...
 
Ответить
Сообщение
Цитата (M73568)
Достаточно разбить ячейку ФИО, и будет вам щастье Фильтр по цвету для Excel 2007 и выше прекрасно справится с Вашими запросами


Дело в том, что данное решение не подходит для автоматизации и для людей не знакомых с сортировкой по фильтру сложно будет отсортировать, тем более, что меню сортировки сложное, поэтому нужен именно макрос, но все равно спасибо за совет...

Автор - shelesto
Дата добавления - 15.04.2013 в 20:57
AlexM Дата: Понедельник, 15.04.2013, 22:28 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4506
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Посмотрите. Проверить не получается, на листе функции, которые не поддерживаются Excel 2003
К сообщению приложен файл: filtr_po_yslovi.xls (44.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Понедельник, 15.04.2013, 22:31
 
Ответить
СообщениеПосмотрите. Проверить не получается, на листе функции, которые не поддерживаются Excel 2003

Автор - AlexM
Дата добавления - 15.04.2013 в 22:28
shelesto Дата: Понедельник, 15.04.2013, 22:42 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Ух-ты! Здорово! Спасибо вам огромное в который раз! Все получилось!!!
 
Ответить
СообщениеУх-ты! Здорово! Спасибо вам огромное в который раз! Все получилось!!!

Автор - shelesto
Дата добавления - 15.04.2013 в 22:42
shelesto Дата: Среда, 17.04.2013, 15:42 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

AlexM,

стал проверять, но, к сожалению, всё работает не совем так, как хотелось:

Макрос привязан к столбцу D и только с ним и работет. Нужно, чтобы код страбатывал именно с тем столбцом, в котором в данное время выделена ячейка, а если же код не срабатывает (выдает ошибку), то либо ничего не происходило, либо вылетало окно с сообщением...
К сообщению приложен файл: filtr_po_yslovi.xls (46.5 Kb)
 
Ответить
СообщениеAlexM,

стал проверять, но, к сожалению, всё работает не совем так, как хотелось:

Макрос привязан к столбцу D и только с ним и работет. Нужно, чтобы код страбатывал именно с тем столбцом, в котором в данное время выделена ячейка, а если же код не срабатывает (выдает ошибку), то либо ничего не происходило, либо вылетало окно с сообщением...

Автор - shelesto
Дата добавления - 17.04.2013 в 15:42
AlexM Дата: Среда, 17.04.2013, 15:55 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4506
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
так?
К сообщению приложен файл: filtr_po_yslovi.xls (41.0 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
Сообщениетак?

Автор - AlexM
Дата добавления - 17.04.2013 в 15:55
shelesto Дата: Среда, 17.04.2013, 16:01 | Сообщение № 8
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Все тоже самое, упорно "фильтрует" только столбец D, в не зависимости от того, какая ячейка выделена...
 
Ответить
СообщениеВсе тоже самое, упорно "фильтрует" только столбец D, в не зависимости от того, какая ячейка выделена...

Автор - shelesto
Дата добавления - 17.04.2013 в 16:01
AlexM Дата: Среда, 17.04.2013, 17:24 | Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4506
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Возможно вы файл старый используете. Прикладываю с другим именем
В доработанном макросе заменена строка[vba]
Код
Cells(3, 4).End(xlDown).Row
[/vba]на строку [vba]
Код
Cells(3, ActiveCell.Column).End(xlDown).Row
[/vba]
Определяется количество данных не в 4 столбце, а том где активная ячейка.
В операторах If также 4 (столбец) заменил на ActiveCell.Column - номер столбца с активной ячейкой.
Поэтому отбор строк идет по столбцу с активной ячейкой.
Возможно там даты не попадают в проверяемые диапазоны.
К сообщению приложен файл: shelesto.xls (40.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВозможно вы файл старый используете. Прикладываю с другим именем
В доработанном макросе заменена строка[vba]
Код
Cells(3, 4).End(xlDown).Row
[/vba]на строку [vba]
Код
Cells(3, ActiveCell.Column).End(xlDown).Row
[/vba]
Определяется количество данных не в 4 столбце, а том где активная ячейка.
В операторах If также 4 (столбец) заменил на ActiveCell.Column - номер столбца с активной ячейкой.
Поэтому отбор строк идет по столбцу с активной ячейкой.
Возможно там даты не попадают в проверяемые диапазоны.

Автор - AlexM
Дата добавления - 17.04.2013 в 17:24
shelesto Дата: Четверг, 18.04.2013, 15:35 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Получилось, спасибо!
Может еще подскажете что прописать в коде, если макрос не находит нужных значений в столбце, он завершался сам (или выводил сообщение об ошибке), не приводя к падению Экселя? Сейчас, если выделить ячейку, в толбце которой отсутсвует дата, то программа зависает.
 
Ответить
СообщениеПолучилось, спасибо!
Может еще подскажете что прописать в коде, если макрос не находит нужных значений в столбце, он завершался сам (или выводил сообщение об ошибке), не приводя к падению Экселя? Сейчас, если выделить ячейку, в толбце которой отсутсвует дата, то программа зависает.

Автор - shelesto
Дата добавления - 18.04.2013 в 15:35
Serge_007 Дата: Четверг, 18.04.2013, 15:37 | Сообщение № 11
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (shelesto)
завершался сам
[vba]
Код
Exit Sub
[/vba]

Цитата (shelesto)
выводил сообщение об ошибке
[vba]
Код
MsgBox ("Error!")
[/vba]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (shelesto)
завершался сам
[vba]
Код
Exit Sub
[/vba]

Цитата (shelesto)
выводил сообщение об ошибке
[vba]
Код
MsgBox ("Error!")
[/vba]

Автор - Serge_007
Дата добавления - 18.04.2013 в 15:37
AlexM Дата: Четверг, 18.04.2013, 18:42 | Сообщение № 12
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4506
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
См. очередной вариант
К сообщению приложен файл: shelesto_new.xls (41.5 Kb)



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеСм. очередной вариант

Автор - AlexM
Дата добавления - 18.04.2013 в 18:42
shelesto Дата: Пятница, 19.04.2013, 15:04 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Serge_007 - если данный код вставляю после кода макроса перед Sub End, то никакой пользы от этого слова нет, если же в самом начале, то код вобще отказывается работать.
 
Ответить
СообщениеSerge_007 - если данный код вставляю после кода макроса перед Sub End, то никакой пользы от этого слова нет, если же в самом начале, то код вобще отказывается работать.

Автор - shelesto
Дата добавления - 19.04.2013 в 15:04
shelesto Дата: Пятница, 19.04.2013, 15:13 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

AlexM - модифицированный скрипт эффекта не дает, как программа висла, так и виснет. Может попробовать указать сначала поиск в столбцах со значением ДАТА и, если значение есть, то только потом исполнение кода?

В приложении скриншот того, что получется, если выделить ячейку не в столбце с датами... иногда такой результат происходит спустя долгих раздумий, иногда Эексель просто перестает отвечать раз и навсегда.
К сообщению приложен файл: 2046787.png (35.6 Kb)


Сообщение отредактировал shelesto - Пятница, 19.04.2013, 15:17
 
Ответить
СообщениеAlexM - модифицированный скрипт эффекта не дает, как программа висла, так и виснет. Может попробовать указать сначала поиск в столбцах со значением ДАТА и, если значение есть, то только потом исполнение кода?

В приложении скриншот того, что получется, если выделить ячейку не в столбце с датами... иногда такой результат происходит спустя долгих раздумий, иногда Эексель просто перестает отвечать раз и навсегда.

Автор - shelesto
Дата добавления - 19.04.2013 в 15:13
AlexM Дата: Пятница, 19.04.2013, 18:45 | Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4506
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
Интересная картинка...
А какую ячейку вы выделяли? буква дальше N строка 55526
Вы же писали, что фильтрация должна быть по столбцу с активной ячейкой. Данные в столбцах C, D, F и G
Я пока не понимаю что вам нужно.
sad



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.


Сообщение отредактировал AlexM - Пятница, 19.04.2013, 20:10
 
Ответить
СообщениеИнтересная картинка...
А какую ячейку вы выделяли? буква дальше N строка 55526
Вы же писали, что фильтрация должна быть по столбцу с активной ячейкой. Данные в столбцах C, D, F и G
Я пока не понимаю что вам нужно.
sad

Автор - AlexM
Дата добавления - 19.04.2013 в 18:45
shelesto Дата: Воскресенье, 21.04.2013, 07:39 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 13
Репутация: 0 ±
Замечаний: 0% ±

Да, фильтрация столбца с активной ячейкой.....но если, допустим, какая-нибудь Тётя Мотя выделит ячейку в другом столбце, то программа очень сильно задумается и может упасть. Возможно ли применение какой-либо функции защиты от "дурака"? Логика моих рассуждений понятна?)
 
Ответить
СообщениеДа, фильтрация столбца с активной ячейкой.....но если, допустим, какая-нибудь Тётя Мотя выделит ячейку в другом столбце, то программа очень сильно задумается и может упасть. Возможно ли применение какой-либо функции защиты от "дурака"? Логика моих рассуждений понятна?)

Автор - shelesto
Дата добавления - 21.04.2013 в 07:39
AlexM Дата: Воскресенье, 21.04.2013, 10:31 | Сообщение № 17
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4506
Репутация: 1127 ±
Замечаний: 0% ±

Excel 2003
В макросах kn1? kn2? kn3 и Kn4 перед строкой
[vba]
Код
Rows.Hidden = False
[/vba]
вставить строку
[vba]
Код
If Rows.Count = Cells(3, ActiveCell.Column).End(xlDown).Row Then Exit Sub
[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.
 
Ответить
СообщениеВ макросах kn1? kn2? kn3 и Kn4 перед строкой
[vba]
Код
Rows.Hidden = False
[/vba]
вставить строку
[vba]
Код
If Rows.Count = Cells(3, ActiveCell.Column).End(xlDown).Row Then Exit Sub
[/vba]

Автор - AlexM
Дата добавления - 21.04.2013 в 10:31
Ирина Дата: Среда, 23.10.2013, 10:08 | Сообщение № 18
Группа: Гости
Подскажите пожалуйста следующее, есть файл такой: состоит из двух столбцов, так вот. где ячейка В1 и В2 они объеденены во втором стобце с одним значением 12. Как сделать сортировку по II стобцу, чтобы не скрылась ячейка со значением В2. Очень прошу помощи

I столбец_______ II столбец
А________________5
Б________________6
В1_______________12
В2
 
Ответить
СообщениеПодскажите пожалуйста следующее, есть файл такой: состоит из двух столбцов, так вот. где ячейка В1 и В2 они объеденены во втором стобце с одним значением 12. Как сделать сортировку по II стобцу, чтобы не скрылась ячейка со значением В2. Очень прошу помощи

I столбец_______ II столбец
А________________5
Б________________6
В1_______________12
В2

Автор - Ирина
Дата добавления - 23.10.2013 в 10:08
Ирина Дата: Среда, 23.10.2013, 10:11 | Сообщение № 19
Группа: Гости
т.е. не сортировку а ФИЛЬТР
[moder]Читаем Правила форума
Создаем свою тему
Прикладываем свой файл
Эта тема закрыта
Счастья Вам и бобра побольше
 
Ответить
Сообщениет.е. не сортировку а ФИЛЬТР
[moder]Читаем Правила форума
Создаем свою тему
Прикладываем свой файл
Эта тема закрыта
Счастья Вам и бобра побольше

Автор - Ирина
Дата добавления - 23.10.2013 в 10:11
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Фильтрация (скрытие) строк по условиям (скрытие строк по выделенной ячейке в столбце по условиям)
  • Страница 1 из 1
  • 1
Поиск:

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