Celda acumulativa (acumulativa)

Contenido

Muy a menudo, surge una situación en la que necesitamos sumar (acumular) varios valores ingresados ​​​​secuencialmente en una celda:

Aquellos. si, por ejemplo, ingresa el número 1 en la celda A5, entonces el número 1 debería aparecer en B15. Si luego ingresa el número 1 en A7, entonces 1 debería aparecer en la celda B22, y así sucesivamente. En general, lo que los contadores (y no solo ellos) llaman un total acumulativo.

Puede implementar un acumulador de celda de almacenamiento de este tipo utilizando una macro simple. Haga clic derecho en la pestaña de la hoja donde se encuentran las celdas A1 y B1 y seleccione del menú contextual Texto de origen (Código fuente). En la ventana del editor de Visual Basic que se abre, copie y pegue el código de macro simple:

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").Valor + .Valor Aplicación.EnableEvents = True End If End If End With End Sub  

Las direcciones de las celdas A1 y A2, por supuesto, se pueden reemplazar por las suyas.

Si necesita realizar un seguimiento de la entrada de datos y resumir no celdas individuales, sino rangos completos, entonces la macro deberá modificarse ligeramente:

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  

Se supone que los datos se ingresan en las celdas del rango A1:A10, y los números ingresados ​​​​se resumen en la columna adyacente a la derecha. Si en su caso no es adyacente, entonces aumente el desplazamiento a la derecha en el operador de compensación: reemplace 1 con un número mayor.

  • ¿Qué son las macros, dónde insertar el código de macro en VBA, cómo usarlas?

Deje un comentario