Гость
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel VBA: возможно ли отследить событие сортировки? / 12 сообщений из 12, страница 1 из 1
31.05.2018, 09:03
    #39653022
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
Здравствуйте.
Есть книга с кучей таблиц, где временами делают сортировки по разным критериям.

Проблема в том, что мне надо отслеживать такие события сортировки.
Попробовал использовать событие Worksheet_Change, но оно не срабатывает при сортировке.

Народ, подскажите, есть ли возможность перехватывать события сортировки?
...
Рейтинг: 0 / 0
31.05.2018, 09:53
    #39653050
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
MAULER,
поместите на лист "летучую" функцию напр. =СЛЧИС() и используйте Worksheet_Calculate.
...
Рейтинг: 0 / 0
31.05.2018, 09:54
    #39653053
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
Казанский,

Поясните пожалуйста, что значит "летучая функция"?
...
Рейтинг: 0 / 0
31.05.2018, 11:31
    #39653114
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
MAULER,

Летучие (изменяемые, изменчивые, волатильные) - те, которые пересчитываются при любых изменениях на листе, независимо от того, поменялись ли исходные данные этих функций.
...
Рейтинг: 0 / 0
31.05.2018, 13:32
    #39653238
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
big-duke,

Дело в том, что Calculate срабатывает раньше, чем Change. А на Change у меня навешена определённая логика.
А сортировка "тревожит" только Calculate (без Change).

Не могу придумать, как мне в этих двух обработчиках выделить только сортировку. Т.е. когда сработает Calculate, оно не будет ждать Change! По идее, чтобы понять что сработала сортировка, нужно быть уверенным, что Change не сработал.
...
Рейтинг: 0 / 0
31.05.2018, 13:50
    #39653263
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
Событие AfterCalculate срабатывает после Change - если это поможет... Но вот как установить, что оно вызвано именно сортировкой, я лично фиг знает.
...
Рейтинг: 0 / 0
31.05.2018, 13:51
    #39653264
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
Впрочем, если между Calculate и AferCalculate не было Change - ну считай, что это таки сортировка. Авось нечасто будешь ошибаться.
...
Рейтинг: 0 / 0
31.05.2018, 14:35
    #39653316
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
Akina,

Спасибо! Обязательно попробую!!
...
Рейтинг: 0 / 0
31.05.2018, 15:33
    #39653391
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
Что-то не могу найти ни одного примера с событием AfterCalculate.
И экселем оно не принимается.
...
Рейтинг: 0 / 0
31.05.2018, 19:57
    #39653585
Казанский
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
MAULER,
это событие похоже только в 2016 появилось.
Можно в Calculate установить флаг и запланировать процедуру через секунду, а в Change сбросить флаг. Процедура проверяет флаг: если установлен, то производит обработку и сбрасывает флаг.
Хотя Calculate может вызываться и без сортировки.
...
Рейтинг: 0 / 0
01.06.2018, 07:21
    #39653675
MAULER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
Казанский,
У меня и так 2016 офис, но что то не вижу я такого события ((
...
Рейтинг: 0 / 0
01.06.2018, 08:12
    #39653690
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA: возможно ли отследить событие сортировки?
Казанскийэто событие похоже только в 2016 появилось.Неправда ваша. У меня в 2010 имеется. Но это событие не листа или книги, а объекта Excel.Application, и к нему и надо достукиваться через экземпляр этого объекта, объявляя соответственно Dim WithEvents, формируя обработчик метода, и так далее.

MAULERне могу найти ни одного примера с событием AfterCalculate.Надо искать не в песочнице, а на сайтах/форумах для продвинутых... и да - не факт что найдёшь.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Excel VBA: возможно ли отследить событие сортировки? / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]