Sumar idéntica celda de varios libros

No sé cómo realizar la siguiente operación de forma más simple:

Tengo 12 libros excel (uno para cada mes del año) con unas 19 hojas cada uno. Todos tienen el mismo formato, sólo difieren los valores contenidos en las celdas.

En un libro nuevo en la celda B13 debo sumar: ENERO.XLS/HOJA1!B13 FEBRERO.XLS/HOJA1!B13 y así sucesivamente hasta diciembre.

En la celda B14 debo sumar : ENERO.XLS/HOJA1!B14 FEBRERO.XLS/HOJA1!B14 y así sucesivamente hasta diciembre.

Y así en el resto de las celdas.

Si hago la fórmula haciendo referencia a cada uno de los libros me queda larguísima, quisiera saber si hay alguna otra forma más simple.

1 respuesta

Respuesta
2

Esta es la solución, sigue mis instrucciones:

-Crea una carpeta independiente y mueve a ella tus doce archivos de meses

-Crea un libro nuevo y pega esta macro en un módulo. Graba el libro con el nombre INTEGRADO.XLS y lo guardas en la misma carpeta de los doce archivos.

IMPORTANTE: Tienes que modificar la línea de la macro marcada en negrita donde decimos el path de la carpeta donde están los doce archivos. Es la línea que empieza por Chdir...(en este ejemplo va una carpeta de mi equipo)

-Por último con tu archivo INTEGRADO abierto, solo queda ejecutar la macro y hará lo que pides.

Sub integrado()
primero = ActiveWorkbook.Name
Sheets(1).Select
Range("b13").Select
ChDir "C:\Users\Luis\Documents\para borrar\" 
archi = Dir("*.xl*")
Do While archi <> primero
Workbooks.Open archi
a = a + Sheets(1).Range("b13").Value
b = b + Sheets(1).Range("b14").Value
c = c + Sheets(1).Range("b15").Value
d = d + Sheets(1).Range("b16").Value
e = e + Sheets(1).Range("b17").Value
f = f + Sheets(1).Range("b18").Value
g = g + Sheets(1).Range("b19").Value
h = h + Sheets(1).Range("b20").Value
i = i + Sheets(1).Range("b21").Value
j = j + Sheets(1).Range("b22").Value
k = k + Sheets(1).Range("b23").Value
l = l + Sheets(1).Range("b24").Value
ActiveWorkbook.Close False
archi = Dir()
Loop
todas = Array(a, b, c, d, e, f, g, h, i, j, k, l)
For x = 0 To UBound(todas)
ActiveCell.Value = todas(x)
ActiveCell.Offset(1, 0).Select
Next
End Sub

Recuerda finalizar y puntuar

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas