Страницы: 1
RSS
Ячейка с формулой не пересчитывается при изменении исходных данных
 
Здравствуйте!  
 
написал формулу расчёта % менеджера продаж (чтобы знать за что работаю)  
исходные данные в ячейках  
1)цена продукта  
2)количество проданного  
данные занёс.  
написал формулу прогрессивно увеличивающего процента, вставил её в свободную ячейку, оп! всё вычислилось.  
Теперь меняю исходные данные (например количество проданного) но! процент не пересчитывается сам, если я снова вставляю формулу ячейке, только тогда перерасчитывается! как сделать автоматический перерасчёт?
 
Сервис = Параметры = Вычисления = Автоматически. Не пробовали?
 
{quote}{login=}{date=08.10.2008 04:40}{thema=}{post}Сервис = Параметры = Вычисления = Автоматически. Не пробовали?{/post}{/quote}  
конечно пробовал, не помогает.  
нужно ткнуть в ячейку с формулой,когда нажимаю на "=" (изменить формулу)показывает окошко, в котором указана моя формула и уже новое вычисленное значение, после чего "Enter" и только тогда содержимое ячейки меняется, вот :-(  
вообще это мой первый опыт VBA в Excel (до понедельника я был обычным юзером ;-)
 
У меня ваш файл все пересчитывает без проблем. Просто меняю исходные и все само считает
 
{quote}{login=}{date=09.10.2008 01:05}{thema=}{post}У меня ваш файл все пересчитывает без проблем. Просто меняю исходные и все само считает{/post}{/quote}  
 
А у меня тоже не пересчитывает. Там самый нижний показатель через пользоват.функцию должен просчитываться, только функция не срабатывает (приходится применять F2 и Enter)
 
да нижний показатель только через F2 Enter меняется, а нужно автоматом, как это сделать? или в чём моя ошибка?
 
Попробуйте добавить в начало Вашей функции  
после объявления переменных  
Application.Volatile  
ЗЫ а почему пользовательская функция?
 
---  
У Вас в ячейке B23 нет ссылок на другие ячейки, изменения которых должны запускать пересчет B23. Поэтому Excel, один раз при загрузке пересчитывав формулу этой ячейки,  помечает ее, как пересчитанную.  
Дальнейших оснований у Excel-я запускать автопересчет этой ячейки нет, т.к. он не обнаруживает зависимостей её формулы от других ячеек, эти зависимости у Вас прописаны только в VBA-коде.  
 
Совет с Application.Volatile поможет, но у него есть недостаток: пересчет B23 будет запускаться при изменении любых ячеек на любом листе книги.  
 
Есть альтернатива: ввести виртуальный параметр функции, который никак в ней обрабатываться не будет, но зато задаст диапазон ячеек, изменение которых повлечет пересчет функции.  
Измените код вот так:  
Function GETCOMPENS(Rng As Range)  
' ... все что и раньше было  
End Function  
 
А в ячейке B23 вместо =GETCOMPENS()  
запишите =GETCOMPENS(B4:B22)  
 
Теперь при любом изменении ячеек B4:B22 будет запускаться пересчет B23  
 
---  
ZVI
 
{quote}{login=Gerasim}{date=08.10.2008 04:34}{thema=Ячейка с формулой не пересчитывается при изменении исходных данных}{post}написал формулу расчёта % менеджера продаж (чтобы знать за что работаю){/post}{/quote}  
 
Извините за офф, но, как мне кажется.... у вас не правильно рассчитывается прибыль с единицы.  
 
Если НДС уже сидит в цене изделия то цена без НДС вычисляется по формуле:    
=Price/1,18  
 
Далее от этой суммы отнимаете Себестоимость и получите Маржинальный доход (он же операционный доход)  
 
И уже от него можете отнять 24%. Итого формула будет выглядить так:  
 
=(Price/1,18-_COST_)-24%*(Price/1,18-_COST_)  
 
 
 
Порадовала надпись "Налоги (их мы должны отдать гос-ву!)" :))))
 
Application.Volatile  
 
Super God bless you
 
{quote}{login=}{date=08.10.2008 04:40}{thema=}{post}Сервис = Параметры = Вычисления = Автоматически. Не пробовали?{/post}{/quote}  
Спасибо огромное, мне помогло)))), не думала, честно говоря, что в этом проблема))) Еще раз спасибо))
Страницы: 1
Читают тему
Наверх