Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2011, 12:05   #1
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию событие было/не было изменения ячейки

В целях контроля изменений нужно знать происходили ли изменения значения ячеек на листе (каждый лист отдельно, желательно по именам), книге, в заданном диапазоне. Так же нужно сбрасывать контроль в ноль. Нужно контролировать только ручное изменения (в том числе с помощью макроса), то есть события пересчета формул, простого перемещения по листу, изменение значения имен и т.п. нужно игнорировать.
Реально ли это?
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 18.09.2011, 12:32   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

короткий ответ - раельно.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 18.09.2011, 19:41   #3
The_Prist
Участник клуба
 
Аватар для The_Prist
 
Регистрация: 17.07.2009
Сообщений: 1,088
По умолчанию

Для примера:
Ведение журнала сделанных в книге изменений
WebMoney - R298726502453; Яндекс.Деньги - 41001332272872
www.excel-vba.ru
The_Prist вне форума Ответить с цитированием
Старый 18.09.2011, 22:04   #4
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 842
По умолчанию

Цитата:
Сообщение от The_Prist Посмотреть сообщение
Спасибо! Интересно. Мне не нужна подробная статистика, нужно ответ True/False на запрос были ли изменения на листе с именем N? Хотя идея реализации в примере понятна.
Это единственная возможная реализация? То есть придется по сути самому отслеживать (хранить/вести поиск по параметрам и т.п.) нужные изменения. Была идея попробовать заставить это делать сам Excel, он же ведет некий лог действий для отмены n-последних действий. Можно ли задействовать (и как) этот механизм?
Опишу подробнее:
1. Имеем книгу в которой значительное количество листов. Отслеживать изменения нужно только на 6-10 листах. Как вариант, один указатель изменений на все контролируемые листы.
2. Состояние изменений в False может быть сброшено в любой момент, без каких либо ограничений.
3. Таких книг будет много, причем одновременно могут быть открыты несколько. То есть код контроля размещается в xla. Имена контролируемых листов во всех книгах одинаковые.

Примерный алгоритм:
1. Событие приложения - изменение содержания ячейки.
2. Проверяем имя листа?
2.1. Если имя не попадает в список контролируемых листов - выход.
2.2. Имя есть в списке.
2.2.1. Меняем индикатор изменений в True, по умолчанию стоит False. (индикатором изменений может быть либо ячейка в книге, либо Имя (переменная Excel)).
3. Выход.
Просто... Но срабатывает по каждому чиху (даже когда у же стоит True), что не есть гуд. Не будет ли тормозить при большом количестве изменений, особенно при работе макросов?
Есть другой путь?
С уважением, Алексей.

Последний раз редактировалось tae1980; 18.09.2011 в 22:10.
tae1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
а у вас так было? Juffin Свободное общение 18 01.12.2009 19:48
Что это было? Alex Cones О форуме и сайтах клуба 17 09.11.2009 01:36
Как сделать табличку, чтобы поля можно было редактировать и красить ячейки? TwiX Общие вопросы Delphi 4 23.08.2009 13:18
Что это было? дмидми О форуме и сайтах клуба 2 19.05.2008 00:24