Взаимосвязанные ячейки без циклической зависимости

Автор AlWin, 07.10.2013, 13:16

« назад - далее »

AlWin

День добрый.
В программе Smeta.ru есть весьма функциональная фишка.
Пример – в приложении:  Три_ячейки.jpg
Имеется две строки – основная (работа) с ячейкой «Количество» = 0,06
и зависимая – (ресурс к этой работе) с ячейками «Расход» (на ед изм основной строки) = 200 и «Потребность» = «Количество» х «Расход» = 0,06х200=12.
При изменении Потребности вручную (с 12 на 24) автоматом пересчитывается Расход (с 200 на 400).
При изменении Расхода (с 400 на 50) автоматом пересчитывается Потребность.
И так можно менять сколько угодно раз.
Причем значения в программе вводятся не опосредованно (дополнительные ячейки или т.п.), а непосредственно в текущие ячейки.

Помогите, пожалуйста, реализовать такую взаимосвязь ячеек в Excel.


ShAM

#1
Только макросом. В модуль листа:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$B$2" Then
[b3] = [b1] * [b2]
ElseIf Target.Address = "$B$3" Then
[b2] = [b3] / [b1]
End If
Application.EnableEvents = True
End Sub


AlWin

Спасибо за уделенное мне время и первое знакомство с обработчиком событий.

Думал дальше как-нибудь сам двинусь, но, к сожалению самостоятельно расшИрить и углУбить не получается.  :(
Еще раз прошу помочь распространить действие этого макроса на диапазоны.
Файл приложен.

RAN

ЦитироватьЕще раз прошу помочь распространить действие этого макроса на диапазоны.

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



cheshiki1

не понял зачем проверка адреса I4?
опишите вручную что проверять и как считать по ячейкам вашего файла. Лично я не совсем понял.

AlWin

cheshiki1:
Реально ведь не только Расход и Потребность зависят друг от друга при неизменяемом Количестве. Если изменяется объем кладки стен (I4) – естественно должна измениться и Потребность в Растворе для нового Количества кирпичной кладки.
Проблема в том, чтобы распространить такую тройственную связь для аналогичных групп ячеек:
I4-G6, I6 (15 - 400, 6000)
I7-G8, I8 (3,6 - 0,304, 1,094)
I7-G9, I9 (3,6 – 1,21, 4,356)

А в идеале и для    J4-G5, J5; J4-G6,J6; J7-G8,J8;  J7-G9,J9
             K4-G5, K5; K4-G6,K6; K7-G8,KJ8;  K7-G9,K9
Количество строк-ресурсов, относящихся к конкретной работе, разумеется, различно и необязательно =2, как у меня в примере.

ShAM

Может, изменять только "ключевые" ячейки (например, D4, D7), а остальные рассчитывать. Возможно даже формулами.
ЗЫ: Наверняка известно сколько кирпича и цемента необходимо для кладки 1 м3 стен. Или я что-то не понимаю. :-\

AlWin

ShAM:
Конечно, известно. Пример с кладкой – для наглядности. Однако и это не аксиома. Кладка, например,  может быть сложная, слоеная и иметь иной фактический расход ресурсов.
Вообще Расход либо установлен нормативно, либо предлагается подсчитать его самому:
1-   как (Предполагаемая фактическая потребность)/(Количество объема работ)
Это касается всех ресурсов, учтенных сметным расчетом не по норме, а по фактическому обсчету по чертежам проекта. Это может быть, напр. арматура всех мастей и диаметров при бетонировании, ресурсы в калькуляции на изготовление м/конструкций и т.п.
2-   как долю от Потребности, учтенной нормативом. Напр. нормой учтен расход сухой смеси для штукатурки толщ 10 мм, а выполняется толщ 5 мм.
Правильно подсчитанный Расход для самой сметы не особо и нужен, но жизненно необходим при составлении последующих ежемесячных актов выполненных работ.

В принципе, я уже понял, что средствами VBA сделать «как в Smeta.ru» - нужно сильно заморочиться.
Проблема, в общем-то, явно не глобальная. Просто иной раз бывает довольно муторно подсчитывать и забивать большой объем рукодельных норм расхода (да и ошибки ведь бывают). Причем в моем шаблоне это приходится делать для каждого конструктива отдельно (подвал, этаж, крыша, парапет...), т .к. старшие товарищи не любют много разных расчетов, а предпочитают видеть «все в одном».