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

Вход

Регистрация

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

 

= Мир MS Excel/Изменение параметров вычислений без пересчета - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение параметров вычислений без пересчета (Макросы/Sub)
Изменение параметров вычислений без пересчета
Lyova Дата: Среда, 15.05.2019, 15:19 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте, Форумчане!

Для целей ускорения вычислений я перед началом работы макроса отключаю вычисления командой [vba]
Код
Application.Calculation = xlManual
[/vba],а по завершении работы макроса включаю вычисления командой
[vba]
Код
Application.Calculation = xlSemiautomatic
[/vba].

После включения расчета не просто переставляется галочка в меню "Параметры вычислений", но и осуществляется сам расчет.

Можно ли сделать так, чтобы после включения вычислений расчет бы в этот момент не производился, а менялось только местоположение галочки в меню "Параметры вычислений"?Таким образом, расчет включался бы только при последующих действиях в книге, уже после выполнения макроса.

Заранее огромное спасибо!


Сообщение отредактировал Lyova - Среда, 15.05.2019, 15:21
 
Ответить
СообщениеЗдравствуйте, Форумчане!

Для целей ускорения вычислений я перед началом работы макроса отключаю вычисления командой [vba]
Код
Application.Calculation = xlManual
[/vba],а по завершении работы макроса включаю вычисления командой
[vba]
Код
Application.Calculation = xlSemiautomatic
[/vba].

После включения расчета не просто переставляется галочка в меню "Параметры вычислений", но и осуществляется сам расчет.

Можно ли сделать так, чтобы после включения вычислений расчет бы в этот момент не производился, а менялось только местоположение галочки в меню "Параметры вычислений"?Таким образом, расчет включался бы только при последующих действиях в книге, уже после выполнения макроса.

Заранее огромное спасибо!

Автор - Lyova
Дата добавления - 15.05.2019 в 15:19
bmv98rus Дата: Среда, 15.05.2019, 16:10 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2470
Репутация: 426 ±
Замечаний: 0% ±

Excel 2013/2016
Можно сделать так, что после выполнения макроса и каких-либо действий пользователя, включался выключенный авто пересчёт, но не то что вы хотите.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеМожно сделать так, что после выполнения макроса и каких-либо действий пользователя, включался выключенный авто пересчёт, но не то что вы хотите.

Автор - bmv98rus
Дата добавления - 15.05.2019 в 16:10
K-SerJC Дата: Среда, 15.05.2019, 16:30 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 440
Репутация: 72 ±
Замечаний: 0% ±

Excel 2013
можно задать переменную типа boolean
включать авто пересчет книги при событии SelectChange при условии что эта переменная true

а переменную установить после выполнения всех макросов.
тогда при следующем изменении ячейки пользователем, включится авто пересчет, и расчет выполнится.


Благими намерениями выстелена дорога в АД.
 
Ответить
Сообщениеможно задать переменную типа boolean
включать авто пересчет книги при событии SelectChange при условии что эта переменная true

а переменную установить после выполнения всех макросов.
тогда при следующем изменении ячейки пользователем, включится авто пересчет, и расчет выполнится.

Автор - K-SerJC
Дата добавления - 15.05.2019 в 16:30
Lyova Дата: Среда, 15.05.2019, 21:55 | Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
bmv98rus, Спасибо за идею! Думаю можно сделать так. Макрос, о котором я писал, находится на листе, на котором агрегируются данные с других листов, на которых вводятся исходные данные. Можно на листе, на котором находится макрос вырубать каждый раз пересчет после выполнения макроса, а на листах, на которых исходные данные, в коде листа включать пересчет при изменении данных листов.
 
Ответить
Сообщениеbmv98rus, Спасибо за идею! Думаю можно сделать так. Макрос, о котором я писал, находится на листе, на котором агрегируются данные с других листов, на которых вводятся исходные данные. Можно на листе, на котором находится макрос вырубать каждый раз пересчет после выполнения макроса, а на листах, на которых исходные данные, в коде листа включать пересчет при изменении данных листов.

Автор - Lyova
Дата добавления - 15.05.2019 в 21:55
Lyova Дата: Среда, 15.05.2019, 21:56 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 115
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
K-SerJC, Спасибо за совет!
 
Ответить
СообщениеK-SerJC, Спасибо за совет!

Автор - Lyova
Дата добавления - 15.05.2019 в 21:56
bmv98rus Дата: Четверг, 16.05.2019, 07:52 | Сообщение № 6
Группа: Проверенные
Ранг: Старожил
Сообщений: 2470
Репутация: 426 ±
Замечаний: 0% ±

Excel 2013/2016
Lyova, Отработал макрос и все значения на своих местах, я так понимаю, что при в этот момент "курок взведен" и если включить пересчет, то данные изменятся. Если так, то по любым событиям включая предложенное K-SerJC, отработает калькуляция что будет равносильно просто включению пересчета автоматом. В этом случае нужно на каждом листе отслеживать событие просто Worksheet_Change и ориентироваться по нему, а чтоб не городить огород из подпрограмм, то Workbook_SheetChange в модуле книги. При этом похоже что надо просто запускать пересчет листа, листов, книги, а не переключать режим. результат будет аналогичным.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеLyova, Отработал макрос и все значения на своих местах, я так понимаю, что при в этот момент "курок взведен" и если включить пересчет, то данные изменятся. Если так, то по любым событиям включая предложенное K-SerJC, отработает калькуляция что будет равносильно просто включению пересчета автоматом. В этом случае нужно на каждом листе отслеживать событие просто Worksheet_Change и ориентироваться по нему, а чтоб не городить огород из подпрограмм, то Workbook_SheetChange в модуле книги. При этом похоже что надо просто запускать пересчет листа, листов, книги, а не переключать режим. результат будет аналогичным.

Автор - bmv98rus
Дата добавления - 16.05.2019 в 07:52
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Изменение параметров вычислений без пересчета (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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