Страницы: 1
RSS
Как скопировать значение формулы в ячейку по условию
 
Добрый день! Есть список договоров в работе и постоянно меняющиеся цена на товар. Как скопировать значение формулы в ячейку по условию? Т.е. пока договор в работе то цена должна отталкиваться от изменяемой цены на товар, как только договор переходит в стадию заключения цена должна зафиксироваться.
 
Цитата
brashno написал:
Как скопировать значение формулы ......... как только договор переходит в стадию заключения цена должна зафиксироваться.
формулы не умеют фиксировать результат они будут отражать всегда текущее значение по условию, хотя можно было бы подумать имея нормальный пример ориентируясь на какие нибудь признаки типа даты и тому подобно но с вашим примером только макрос
Лень двигатель прогресса, доказано!!!
 
brashno,
=ЕСЛИ(A1=$O$1;$M$1+100;B1)
в Б1 и протянуть
Меняйте статус на "готов" (вылезет ошибка что формула ссылается сама на себя) и попробуйте изменить значение в М1
но если поменять условие обратно чтобы сработала истина формула тут же пересчитается. и вернуть предыдущее значение будет нельзя если не запомнили. единственный вариант только если есть БЕКАП(это типо если уже рабочий файл и кто-то где то по ошибке поменяет статус)
Сергей,
P.S. помню както сталкнулся с такой же задачей
зацикливаем формулу саму на себя, в итоге когда срабатывает условие ЛОЖЬ формула уже не может пересчитать себя и значение остаётся без изменений.

Мне кажется тут надо worksheet_change и чтобы при соблюдении условий в ячейке с формулой заменялаль формула на значение. которое было получено в результате формулы.
Изменено: Wild.Godlike - 17.04.2019 13:37:15
 
С помощью worksheet_change наверное можно чего-то подобного добиться. Для этого файла, я бы так сделал.
Наша суть отражается в наших повторяющихся действиях. Отсюда следует, что совершенство есть не действие, а привычка. Аристотель.
 
Wild.Godlike, подход неправильный. нельзя допускать зацикливания.

Вариант, который использовать только при полном понятии о зацикливаниях и к чему это может привести - использование итеративных вычислений.
Файл-Параметры-Формулы-Итерации разрешить, число итераций - достатчно 1. Формула в В1 ссылается а себя:
=ЕСЛИ(A1=$O$1;$M$1+100;B1)

Еще раз - только для ознакомления. Если макросы не запрещены, лучше использовать событие листа.
 
Цитата
vikttur написал:
Если макросы не запрещены, лучше использовать событие листа.
Макросы не запрещены. А что это- событие листа?
 
Сообщение №4, там именно это.
 
Спасибо
Страницы: 1
Наверх