здравствуйте! подскажите как возможно реализовать такой момент, в ячейке есть число и при внесении в эту же ячейку данных, суммировались к тем которые были в ячейке!
здравствуйте! подскажите как возможно реализовать такой момент, в ячейке есть число и при внесении в эту же ячейку данных, суммировались к тем которые были в ячейке!ASSEI
Сообщение отредактировал ASSEI - Понедельник, 25.07.2016, 15:12
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then z_ = Range("A1") End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then Application.EnableEvents = 0 Range("A1") = z_ + Target.Value Application.EnableEvents = 1 Target.Select'Возврат обратно в А1. Если не нужно, то сотрите End If End Sub
[/vba]
Добавлено Действительно, название прохлопал. Это я не отдохнул еще после отдыха на выходных.
Такой вариант [vba]
Код
Dim z_
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then z_ = Range("A1") End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address(0, 0) = "A1" Then Application.EnableEvents = 0 Range("A1") = z_ + Target.Value Application.EnableEvents = 1 Target.Select'Возврат обратно в А1. Если не нужно, то сотрите End If End Sub
[/vba]
Добавлено Действительно, название прохлопал. Это я не отдохнул еще после отдыха на выходных._Boroda_
В порядке экспериментального юмора преобразовал вариант Udik'а в суммирование слагаемых с логгированием внутри формулы. Каждое новое слагаемое дописывается в формулу с хвостом из тайм-штампа, типа такого:
Private Sub Worksheet_Change(ByVal Target As Range) Dim str As String
If Target.Address <> "$A$1" Then Exit Sub If Target.Value = "" Then Exit Sub
str = Replace(Target.Value, ",", ".") Application.EnableEvents = False Application.Undo If Not IsEmpty(Target.Value) Then str = Mid(Target.Formula, 2) & " + " & str End If Target.Formula = "=" & str & " + N(""" & Now & """)" Application.EnableEvents = True
End Sub
[/vba]
Само собой тоже не знаю, будет ли работать в ОО...
P.S. Интересно, что попытка применить к такой ячейке операции "Специальная вставка \ Вставить значения" благополучно удваивает сумму ячейки и, естественно, дописывается в хвост сохраняющейся формулы... Т.е. получается, что специальная вставка - это фактически тот же пользовательский ввод, только выполняемый автоматически.
В порядке экспериментального юмора преобразовал вариант Udik'а в суммирование слагаемых с логгированием внутри формулы. Каждое новое слагаемое дописывается в формулу с хвостом из тайм-штампа, типа такого:
Private Sub Worksheet_Change(ByVal Target As Range) Dim str As String
If Target.Address <> "$A$1" Then Exit Sub If Target.Value = "" Then Exit Sub
str = Replace(Target.Value, ",", ".") Application.EnableEvents = False Application.Undo If Not IsEmpty(Target.Value) Then str = Mid(Target.Formula, 2) & " + " & str End If Target.Formula = "=" & str & " + N(""" & Now & """)" Application.EnableEvents = True
End Sub
[/vba]
Само собой тоже не знаю, будет ли работать в ОО...
P.S. Интересно, что попытка применить к такой ячейке операции "Специальная вставка \ Вставить значения" благополучно удваивает сумму ячейки и, естественно, дописывается в хвост сохраняющейся формулы... Т.е. получается, что специальная вставка - это фактически тот же пользовательский ввод, только выполняемый автоматически.Gustav