Cumulatieve cel (cumulatief)

Inhoud

Heel vaak doet zich een situatie voor waarin we verschillende waarden moeten optellen (accumuleren) die achtereenvolgens in één cel zijn ingevoerd:

Die. als u bijvoorbeeld het cijfer 1 in cel A5 invoert, dan moet het cijfer 1 in B15 verschijnen. Als u vervolgens het cijfer 1 in A7 invoert, moet 1 verschijnen in cel B22, enzovoort. In het algemeen, wat accountants (en niet alleen zij) een cumulatief totaal noemen.

Met een eenvoudige macro kunt u zo'n opslagcelaccu implementeren. Klik met de rechtermuisknop op de bladtab waar de cellen A1 en B1 zich bevinden en selecteer in het contextmenu Brontekst (Broncode). Kopieer en plak in het geopende Visual Basic-editorvenster de eenvoudige macrocode:

Private Sub Worksheet_Change (ByVal Target As Excel.Range) With Target If .Address(False, False) = "A1" Then If IsNumeric(.Value) Then Application.EnableEvents = False Range("A2").Value = Range(" A2").Value + .Value Application.EnableEvents = True End If End If End With End Sub  

De adressen van de cellen A1 en A2 kunnen natuurlijk worden vervangen door uw eigen adressen.

Als u gegevensinvoer wilt bijhouden en geen afzonderlijke cellen wilt samenvatten, maar hele bereiken, moet de macro enigszins worden gewijzigd:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) Indien niet Intersect(Target, Range("A1:A10")) is niets dan If IsNumeric(Target.Value) Dan Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Er wordt aangenomen dat gegevens worden ingevoerd in de cellen van het bereik A1:A10 en dat de ingevoerde getallen worden samengevat in de aangrenzende kolom aan de rechterkant. Als het in jouw geval niet aangrenzend is, verhoog dan de verschuiving naar rechts in de Offset-operator - vervang 1 door een groter getal.

  • Wat zijn macro's, waar macrocode in VBA in te voegen, hoe ze te gebruiken?

Laat een reactie achter