Страницы: 1
RSS
Отключение пересчета данных
 
Здравствуйте!

В книге установлен автоматический пересчет формул.
На листе 2 есть формула: В4=В2+Лист1С3
В какой-то момент пользователь изменяет значение С3 на листе 1.
Мы заранее не знаем, в какой момент будут происходить изменения в С3. (При изменениях в других ячейках книга должна пересчитываться автоматически!)

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

Спасибо!
 
в Excel вы можете отключить или включить расчеты для всей книги
выберите режим, который вам больше подходит
вы придумали решение, которое никуда не годится и спрашиваете как им воспользоваться. ответ: никак!
у вас же задача не отключить расчеты, а скорее всего какая-то другая?
когда вы сможете сформулировать свою реальную задачу, возможно, вам подскажут ее решение)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
ton bon, подозреваю, что ваша задача выглядит иначе, а вы просите реализовать для вас ваше видение решения.
Попробуйте описать именно основную задачу, что есть на входе, что нужно чтобы происходило при вводе данных юзером.
Вот горшок пустой, он предмет простой...
 
Спасибо за ответы!
Но задача именно такова, как я ее написал:

При изменении определенной ячейки на листе должен отключаться автоматический пересчет книги. Если эта задача решений не имеет, то придется думать, каким путем ее обойти.
 
В модуль листа:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim v, cell As Range
   Set cell = Range("C3")
   If Not Intersect(Target, cell) Is Nothing Then
     With Application
       If .Calculation <> xlCalculationManual Then
         v = cell.Value
         .EnableEvents = False
         .Undo
         .Calculation = xlCalculationManual
         cell.Value = v
         .EnableEvents = True
       End If
     End With
   End If
End Sub
Владимир
 
задача элементарная, вот только сколько новых вопросов у вас возникнет в связи с ее решением...
удачи!
Изменено: Ігор Гончаренко - 19.01.2021 18:42:53
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Спасибо большое за помощь! Вариант sokol92 делает в итоге, что было нужно: сначала все же пересчитывает функцию (скажем, сумму, как в вопросе)  при изменении целевого показателя, но после возвращает для нее (функции)  прежнее значение, хотя целевой показатель получил новое значение. Интересное решение! Это и требовалось!
Вариант от Iгор Гончаренко пересчитывает формулу при изменении целевого показателя, а после переводит вычисления в ручной режим. В этом варианте функция суммы все же изменяется, т.е. автоматический пересчет отключается уже после вычислений, обусловленных изменением целевого показателя, а не до!!
Еще раз благодарю!
Страницы: 1
Наверх