En este artículo, crearemos una función personalizada para calcular la suma de celdas en el rango definido para todas las hojas de trabajo en un libro.

Los datos brutos de este ejemplo constan de varias hojas. Cada hoja contiene datos del equipo de ventas, que incluye el nombre del vendedor y la cantidad de artículos vendidos por él en la fecha especificada por el nombre de la hoja.

Los datos de ventas están presentes en el rango A6: B16 en la misma secuencia en todas las hojas de trabajo.

ArrowRaw

En la hoja «Principal», queremos el número total de ventas realizadas por diferentes vendedores. Para calcular el número total de ventas, tenemos que sumar el número de ventas de todas las hojas del libro de trabajo.

ArrowMain

Hemos utilizado la función personalizada «SumRangeOfAllSheets» para calcular el número total de ventas realizadas por diferentes vendedores. La función personalizada “SumRangeOfAllSheets” toma el rango como entrada.

ArrowOutput

Explicación lógica

Hemos creado la función personalizada «SumRangeOfAllSheets» para calcular la suma de valores en las celdas en el rango definido para todas las hojas de trabajo en el libro de trabajo. La función personalizada “SumRangeOfAllSheets” toma el rango como entrada. Esta función agrega valores en las celdas del rango definido de todas las hojas de trabajo.

Explicación del código

WorksheetFunction.Sum El objeto WorksheetFunction se utiliza para acceder a funciones de hoja de Excel desde Visual Basics. Hemos utilizado la función SUMA de la hoja de Excel para agregar los valores en el rango.

InputRange.Address El código anterior se utiliza para devolver la dirección del rango especificado por el objeto de rango «InputRange».

Siga a continuación el código

Option Explicit

Function SumRangeOfAllSheets(InputRange As Range)

'Declaring variables

Dim i As Integer

Dim Total As Long

'Looping through the sheets in the worksheets collection starting from second sheet

For i = 2 To Worksheets.Count

'Calculating the sum for specified range of all the sheets

Total = Total + WorksheetFunction.Sum(Worksheets(i).Range(InputRange.Address))

Next

SumRangeOfAllSheets = Total

End Function

Si te gustó este blog, compártelo con tus amigos en Facebook y Facebook.

Nos encantaría saber de usted, háganos saber cómo podemos mejorar nuestro trabajo y hacerlo mejor para usted. Escríbanos a [email protected]