Страницы: 1
RSS
При изменении в одной из группы ячеек менять значения в других ячейках
 
Всем добрый день, есть необходимость создание таблицы, такого формата, что бы была возможность менять значения как минимум в 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).  
Если возможность как то это сделать?
Изменено: vikttur - 23.06.2021 10:39:37
 
Добрый день! Попробуйте вместо значения в третьей ячейке записать функцию:
=[Столбец2]+[Столбец1]
или
=СУММ(Таблица1[[Столбец1]:[Столбец2]])
или
= B3+C3
или
Сумм(В3:С3)
Изменено: msi2102 - 23.06.2021 09:38:25
 
Эти функции дадут возможность подсчета итогового результата, но если я поменяю сам итоговый результат, например заменю  (в примере 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
Изменено: evgeniygeo - 23.06.2021 14:31:57
 
Подскажите как с этим работать, я так понимаю это макрос? Или, если есть возможность, пример с реализацией приложите, пожалуйста ))
Изменено: vikttur - 23.06.2021 10:37:36
 
А если поменять значение в третьей, то для правильности примера, где автоматически надо менять? В первой или во второй? Они равноправные в примере.
* Или во второй всегда вручную?
Изменено: Светлый - 23.06.2021 10:05:55
 
В примере 4+2=6 2 статична(это для примера, может и 4 и 6 быть статичной), главное, что бы другие 2 значения можно было менять, при этом пример оставался правильным, при смене 1 значения, второе менялось автоматически. Просто вписав формулы этого не достичь, так как стоит поменять значение в ручную, формула в ячейке пропадает.
Изменено: vikttur - 23.06.2021 10:37:45
 
При смене третей ячейки меняется первая.
Код
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, спасибо, т.к. надо ))
Изменено: vikttur - 23.06.2021 10:38:16
 
vokilook, обнаружил, что Ваш код применен для определенных столбов, а не ячеек, можно поправить как то его, что бы он действовал на определенных ячейках, просто использовать его буду, в таблице с разными данными и формулами, которые строится будут на данных из 3 ячеек, ну и часть таблицы использует те же столбцы (
Изменено: vikttur - 23.06.2021 12:46:57
Страницы: 1
Наверх