CĂ©lula acumulada (acumulativa)

Contidos

Moitas veces, xorde unha situaciĂłn cando necesitamos sumar (acumular) varios valores introducidos secuencialmente nunha cela:

Eses. se, por exemplo, introduce o nĂşmero 1 na cela A5, entĂłn o nĂşmero 1 deberĂ­a aparecer en B15. Se introduce o nĂşmero 1 en A7, entĂłn deberĂ­a aparecer 1 na cela B22, etc. En xeral, o que os contadores (e non sĂł eles) chaman un total acumulado.

Podes implementar un acumulador de celas de almacenamento usando unha macro sinxela. Fai clic co botón dereito na pestana da folla onde están as celas A1 e B1 e selecciona no menú contextual Texto de orixe (Código fonte). Na xanela do editor de Visual Basic que se abre, copie e pegue o código de macro simple:

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

Os enderezos das celas A1 e A2, por suposto, pĂłdense substituĂ­r polos seus propios.

Se precisa facer un seguimento da entrada de datos e resumir non as celas individuais, senón intervalos enteiros, entón a macro terá que modificarse lixeiramente:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Not Intersect(Target, Range("A1:A10")) Non Ă© nada, se IsNumeric(Target.Value) EntĂłn Application.EnableEvents = False Target.Offset (0, 1) .Value = Target.Offset(0, 1).Value + Target.Value Application.EnableEvents = True End If End If End Sub  

Suponse que os datos se introducen nas celas do rango A1:A10 e os números introducidos resúmense na columna adxacente á dereita. Se no teu caso non é adxacente, aumenta o desprazamento cara á dereita no operador de compensación: substitúe 1 por un número maior.

  • Que son as macros, onde inserir o cĂłdigo de macros en VBA, como usalas?

Deixe unha resposta