Есть ячейка, по умолчанию, в ней должна быть сумма соседних, но при этом, должна оставаться возможность ввести число руками.
Правильно ли я понимаю, что делать надо так Вешать скрипт VBA на изменение этой ячейки - если она пустая, то подставляем формулу.
Или есть какие то более изящные решения? Чем меня смущает способ выше, если ячейки не именованные, то скрипт начнет надо будет править каждый раз при добавлении строк (а такое возможно)
gribnick75 написал: Чем меня смущает способ выше, если ячейки не именованные, то скрипт начнет надо будет править каждый раз при добавлении строк (а такое возможно)
Можно, как Вы выражаетесь 'вешать' макрос на нужный диапазон. Можно вообще на другое событие. Можно на кнопку и т.п. Масса вариантов. Вы лучше файл-пример покажите. Как есть-Как надо
Согласие есть продукт при полном непротивлении сторон
gribnick75, я бы сделал MsgBox с вопросом "Вы уверены, что хотите изменить формулу на значение?". И если пользователь нажмет "Да", то значение сохранится, а если "Нет", то вернется формула
evgeniygeo написал: я бы сделал MsgBox с вопросом "Вы уверены, что хотите изменить формулу на значение?". И если пользователь нажмет "Да", то значение сохранится, а если "Нет", то вернется формула
Тут вопрос в том, что если человек изменит и введет значение, как потом вернуть формулу. можно и кнопкой, но "чем меньше действий - тем лучше"
Вводите значение в соседнюю ячейку, а в формуле пропишите условие: Если соседняя ячейка пустая, тогда считать по формуле. иначе - бери из сосед. яч. значение
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
Михаил Лебедев написал: Вводите значение в соседнюю ячейку, а в формуле пропишите условие: Если соседняя ячейка пустая, тогда считать по формуле. иначе - бери из сосед. яч. значение
Можно и так, но может путать конечного пользователя. Там и так форма для заполнения довольно большая Хочется как раз визуально все упростить, чтобы у пользователя не кипела голова от "введи сюда или сюда, нажми кнопку"
А сама ЗАДАЧА то вообще в чем?. Не СПОСОБ, которым Вы пытаетесь ее решить. Страшный сон бухгалтерии - Пользователь может менять значение =СУММ()ы ячеек по своему усмотрению
Согласие есть продукт при полном непротивлении сторон
gribnick75, странно конечно, но в таком случае можно сделать два вида сброса: сбросить все (вставить формулы везде), сбросить активную ячейку
как вариант:
Код
Sub СброситьВсе()
lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
a = 1
For n = 7 To lLastRow Step 6
Cells(n, 2).FormulaLocal = "=СУММ(B" & a + 1 & ":B" & n - 1 & ")"
a = n
Next
End Sub
Sub СброситьАктив()
If Cells(ActiveCell.Row, 1) <> "ИТОГ" Then
MsgBox "asdasd"
Exit Sub
Else
a = 1
For n = ActiveCell.Row - 1 To 1 Step -1
If Cells(n, 1) = "ИТОГ" Then a = n
Next
Cells(ActiveCell.Row, 2).FormulaLocal = "=СУММ(B" & a + 1 & ":B" & ActiveCell.Row - 1 & ")"
End If
End Sub