Kumulativní buňka (kumulativní)

Obsah

Poměrně často nastává situace, kdy potřebujeme sečíst (akumulovat) několik hodnot zadaných postupně do jedné buňky:

Tito. pokud například zadáte číslo 1 do buňky A5, pak by se číslo 1 mělo objevit v B15. Pokud pak zadáte číslo 1 do A7, pak by se 1 měla objevit v buňce B22 a tak dále. Obecně to, co účetní (a nejen oni) nazývají kumulativní součet.

Takový úložný článek-akumulátor můžete implementovat pomocí jednoduchého makra. Klepněte pravým tlačítkem myši na kartu listu, kde jsou umístěny buňky A1 a B1, a vyberte z kontextové nabídky Zdrojový text (Zdrojový kód). V okně editoru Visual Basic, které se otevře, zkopírujte a vložte jednoduchý kód makra:

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  

Adresy buněk A1 a A2 lze samozřejmě nahradit vlastními.

Pokud potřebujete sledovat zadávání dat a sumarizovat nikoli jednotlivé buňky, ale celé rozsahy, bude nutné makro mírně změnit:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Not Intersect(Target, Range("A1:A10")) Is Nothing Then If IsNumeric(Target.Value) Then Application.EnableEvents = False Target.Offset(0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Předpokládá se, že data jsou zadána do buněk rozsahu A1:A10 a zadaná čísla jsou sečtena v sousedním sloupci vpravo. Pokud ve vašem případě nesousedí, zvyšte posun doprava v operátoru Offset – nahraďte 1 větším číslem.

  • Co jsou makra, kam vložit kód makra ve VBA, jak je používat?

Napsat komentář