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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.10.2010, 21:18   #1
peq
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 230
По умолчанию автоматический пересчет данных на листе - код

добрый день!

интересен вопрос, возможно ли прописать в макросе, чтобы данные в книге пересчитывались автоматически, но только данные, привязанные к одному листу?

то есть есть саб, в начале сразу задается код "пересчет листа" (аналог комбинации shift+f9, но автоматический, запускающийся при изменении по умолчанию), в конце саба возвращается опять автоматический пересчет.

или такого нет, правильнее всего автоматическое обновление отключить и каждый раз при изменении данных вызывать код - аналог shift-f9
peq вне форума Ответить с цитированием
Старый 14.10.2010, 21:45   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Попробуйте так (можно добавить нужные проверки и доп.условия):
Код:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Sh.Calculate
End Sub
motorway вне форума Ответить с цитированием
Старый 14.10.2010, 22:11   #3
peq
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 230
По умолчанию

спасибо, попробую завтра

p.s. хотел только спросить, перед этим надо где-то писать
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With

чтобы остальное не пересчитывалось или это лишнее?

Последний раз редактировалось peq; 14.10.2010 в 22:18.
peq вне форума Ответить с цитированием
Старый 14.10.2010, 22:47   #4
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Ну да, если хотите, чтобы пересчет был при изменении только, то надо написать.
motorway вне форума Ответить с цитированием
Старый 15.10.2010, 13:17   #5
peq
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 230
По умолчанию

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

но, подумав, действительно правильнее всего автоматический пересчет отрубить по всему файлу, а в нескольких ключевых точках кода прописать пересчет листа

выигрыш по скорости получился крутой

в общем, спасибо, вопрос закрыт
peq вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переменный штрих-код на листе EXCEL. Доброжелатель Microsoft Office Excel 24 11.10.2015 10:55
Пересчет данных листа до выхода из макроса ELE-COM Microsoft Office Excel 5 14.05.2010 11:21
пересчет данных в таблице по примеру. vkopitsa Microsoft Office Word 7 14.03.2010 11:39
сортировка данных (пересчет возможных вариантов комбинаций, перенос данных в таблицу) Vitalik85 Microsoft Office Excel 4 12.08.2009 00:30
Автоматический перенос данных из общего листа в другие InvoiceControl Microsoft Office Excel 3 02.10.2008 13:21