Всем добрый день, есть необходимость создание таблицы, такого формата, что бы была возможность менять значения как минимум в 2 ячейках из 3, в связке 1 примера. Например: 4+2=6 состоит из 3 ячеек со значениями: 4, 2 и 6(сумма первых 2 ячеек), можно как то реализовать возможность изменять ячейки 1 и 3 (значения 4 и 6) , с сохранением правильности примера, то есть при замене скажем значения 4 на 6 в 3 ячейке значение 6 должно поменяться на 8(6+2=8), при этом заменив значение в 3 ячейке скажем с 6 на 10, значение в 1 ячейке автоматом менялось на 8(8+2=10). Если возможность как то это сделать?
Добрый день! Попробуйте вместо значения в третьей ячейке записать функцию: =[Столбец2]+[Столбец1] или =СУММ(Таблица1[[Столбец1]:[Столбец2]]) или = B3+C3 или Сумм(В3:С3)
Эти функции дадут возможность подсчета итогового результата, но если я поменяю сам итоговый результат, например заменю (в примере 4+2=6) 6 на 10, ничего не произойдет, получиться 4+2=10, а нужно, что бы 4 поменялась на 8 (8+2=10) для правильности примера. В том то и вопрос, что добавить функцию к 1 ячейке просто, а нужно, что бы в 2 ячейках менялись значения, то есть 2 она постоянная, а 4 и 6 могли меняться, при этом, что бы при смене 1, автоматом менялось и другое, дабы пример оставался верным.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("C2")) Is Nothing Then
Range("A2") = Range("C2") - Range("B2")
End If
If Not Intersect(Target, Range("A2")) Is Nothing Then
Range("C2") = Range("A2") + Range("B2")
End If
If Not Intersect(Target, Range("B2")) Is Nothing Then
Range("C2") = Range("A2") + Range("B2")
End If
Application.EnableEvents = True
End Sub
А если поменять значение в третьей, то для правильности примера, где автоматически надо менять? В первой или во второй? Они равноправные в примере. * Или во второй всегда вручную?
В примере 4+2=6 2 статична(это для примера, может и 4 и 6 быть статичной), главное, что бы другие 2 значения можно было менять, при этом пример оставался правильным, при смене 1 значения, второе менялось автоматически. Просто вписав формулы этого не достичь, так как стоит поменять значение в ручную, формула в ячейке пропадает.
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count = 1 Then
If Not IsNumeric(Target.Value) Or Target.Value = "" Then
Exit Sub
End If
Else
Exit Sub
End If
Application.EnableEvents = False
If Target.Column = 2 Then
Cells(Target.Row, Target.Column + 2) = Cells(Target.Row, Target.Column) + Cells(Target.Row, Target.Column + 1)
Else
If Target.Column = 3 Then
Cells(Target.Row, Target.Column + 1) = Cells(Target.Row, Target.Column - 1) + Cells(Target.Row, Target.Column)
Else
If Target.Column = 4 Then
Cells(Target.Row, Target.Column - 2) = Cells(Target.Row, Target.Column) - Cells(Target.Row, Target.Column - 1)
End If
End If
End If
Application.EnableEvents = True
End Sub
vokilook, обнаружил, что Ваш код применен для определенных столбов, а не ячеек, можно поправить как то его, что бы он действовал на определенных ячейках, просто использовать его буду, в таблице с разными данными и формулами, которые строится будут на данных из 3 ячеек, ну и часть таблицы использует те же столбцы (