Страницы: 1
RSS
Накопительная ячейка. Наростание и Убывание
 
Всем доброго дня. Уважаемые знатоки передо мной встала задача но решить ее не могу
Задача: создать накопительную Ячейку в которой число будут увеличиваться или уменьшатся.
Пример:  есть строка из  3 ячеек B2-(поступило) С2-(взяли) D2-(Осталось накопительная ячейка)
Если добавить в ячейку В2 число 10 а затем 40 то в ячейке D2  накопится сумма 50
Если добавить в ячейку C3 число 10 то в ячейке D4  сумма уменьшится и будет 40
то есть одна ячейка добавляет другая отнимает сумму у ячейки D4
И так же сделать со следующими строками B3 C3 D3 ... B50 C50 D50
Возможно ли такое сделать если да то как ?
Заранее спасибо вам за помощь!!!!

p.s надеюсь задачу понятно объяснил
Изменено: Taigeron - 28.03.2017 09:36:28
 
без файла-примера ничего не понятно
если в B2 10, а затем 40 - куда 40? опять в B2? или ниже в B3?
если в С3 10, то почему на строку ниже в D4 40? а в С4 и B4 тоже что-то есть?
 
возможно.
http://www.planetaexcel.ru/techniques/3/52/

Без примера с исходными данными ответ будет только такой (хотя может быть кто-то не поленится, и за вас создаст исходник)
 
Про ячейку с накоплением есть статья в "Приемах". Там вообще много чего полезного есть.
 
Цитата
yozhik написал:
без файла-примера ничего не понятно
Вот пример
 
Цитата
heso написал: http://www.planetaexcel.ru/techniques/3/52/
Вот тут нашел в комментариях возможность реализовать Первую часть задачи увеличения содержимого накопительной ячейки
Код
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 
  If Not Intersect(Target, Range("B3:D5")) Is Nothing Then
     If IsNumeric(Target.Value) Then
         Application.EnableEvents = False
         Cells(Target.Row, 4).Value = Cells(Target.Row, 4).Value + Target.Value
         Application.EnableEvents = True
     End If
  End If
End Sub


вот теперь бы найти чтобы из этой накопительной ячейки можно было отнимать
Изменено: Taigeron - 29.03.2017 11:33:33
 
Taigeron, код следует оформлять соответствующим тегом. Ищите такую кнопку и исправьте своё сообщение.
 
так?
 
Цитата
yozhik
Большое спасибо за труд, что то похожее но не совсем.

Видимо я слишком сложно объясняю
Изменено: Taigeron - 28.03.2017 11:55:43
 
Подскажите пожалуйста как можно изменить макрос  
Код
Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
  
  If Not Intersect(Target, Range("B3:D80") Is Nothing Then 
     If IsNumeric(Target.Value) Then 
      Application.EnableEvents = False 
      Cells(Target.Row, 4).Value = Cells(Target.Row, 4).Value + Target.Value 
      Application.EnableEvents = True 
     End If 
  End If 
End Sub
 

чтобы значения в накопительную ячейку записывались только из одного столбца
например Столбец В  
то есть В1 по В80 могут записать
а другие столбцы не могли добавлять в накопительную ячейку
Изменено: Taigeron - 28.03.2017 11:25:24
 
У вас в макросе только в одном месте явно упоминается диапазон. Его и правьте. Плюс проверьте количество скобок.
 
Taigeron, посмотрите свой #9 - зачем там цитата? Да ещё целиком всё сообщение. Даже размер файла захватили. Зачем?
Кнопка цитирования не для ответа.
 
heso,Спасибо большое не заметил что за место В80 стоит D80
теперь изменения идут только с одного столбца В
Значит работает :)

Что теперь нужно изменить в этом макросе чтобы он из накопительной ячейки отнимал
и при вставке в исходный текст работали 2 макроса один отнимал другой прибавлял
 
Taigeron, ну у Вас ведь есть образец для суммирования - просто поменяйте плюс на минус для нужной ячейки )
 
Юрий М,Пытался ошибка вылазиет

понимаю что что то не то делаю
читал что Worksheet_Change должен быть один но я не понимаю как код изменить правильно
Уже убирал строку Worksheet_Change но все равно ошибка
Что не так?
Код
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
 
  If Not Intersect(Target, Range("B3:B80")) Is Nothing Then
     If IsNumeric(Target.Value) Then
         Application.EnableEvents = False
         Cells(Target.Row, 3).Value = Cells(Target.Row, 3).Value + Target.Value
         Application.EnableEvents = True
     End If
  End If
End Sub

  If Not Intersect(Target, Range("D3:D80")) Is Nothing Then
     If IsNumeric(Target.Value) Then
         Application.EnableEvents = False
         Cells(Target.Row, 3).Value = Cells(Target.Row, 3).Value - Target.Value
         Application.EnableEvents = True
     End If
  End If
End Sub
 
End Sub в середине лишний
 
yozhik,Все работает как надо
Всем огромное СПАСИБО !!! за помощь.

Юрий М тебе так же спасибо за то что хорошо следишь за порядком на форуме. Уважаю!
 
Всем снова привет. В продолжени этой темы хочу спросить, можно ли создать накопительную ячейку используя формулы?
Поскольку накопительная ячейка с использованием макросов не работает в android.
Как я выяснил android макросы вообще не поддерживают
Страницы: 1
Наверх