Macro sumar Hoja y Celda Especifica de varios libros

Tengo una carpeta con 600 libros (clientes), dentro de cada libro existen varias hojas (todas con los mismos nombres), una hoja llamada RESUMEN tiene los totales de las demás hojas de cada libro, en las celdas de la hoja resumen tengo valores en las celdas A1, A2, A3. Me interesa acumular en un libro llamado Cuadre los totales de las antes indicadas de la hoja resumen de cada libro.

1 respuesta

Respuesta
1

H o l a : Te anexo la macro para obtener los valores de las celdas A1, A2 y A3, de la hoja "resumen" de todos los libros.

Es importante que todos los libros tenga la hoja "resumen"; si algún libro no tiene una hoja llamada "resumen" la macro te solicitará la hoja que deseas incluir, puedes seleccionar una hoja, o bien, presionar "cancelar" para que la macro continúe.

Copia la macro en tu libro "cuadre" y crea una hoja llamada "Totales". Guardar tu archivo cuadre en cualquier carpeta diferente a la carpeta donde tienes tus 600 libros.

Modifica en la macro la ruta, por la carpeta donde tienes tus 600 libros.

Sub Cuadre()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    '
    ruta = "C:\trabajo\carpeta\"    'Poner el nombre de la carpeta con los 600 libros
    hoja = "Totales"                'Nombre de la hoja donde se acumularán los totales
    '
    arch = Dir(ruta & "*.xls*")
    j = 2
    Set h = Sheets(hoja)
    h.Cells.ClearContents
    On Error Resume Next
    Do While arch <> ""
        h.Cells(1, j).Value = arch
        h.Cells(2, j).Formula = "=IFERROR('" & ruta & "[" & arch & "]resumen'!A1,""No existe la hoja"")"
        h.Cells(2, j).Value = h.Cells(2, j).Value
        h.Cells(3, j).Formula = "=IFERROR('" & ruta & "[" & arch & "]resumen'!A2,""No existe la hoja"")"
        h.Cells(3, j).Value = h.Cells(3, j).Value
        h.Cells(4, j).Formula = "=IFERROR('" & ruta & "[" & arch & "]resumen'!A3,""No existe la hoja"")"
        h.Cells(4, j).Value = h.Cells(4, j).Value
        j = j + 1
        arch = Dir()
    Loop
    Application.ScreenUpdating = True
    MsgBox "fin"
End Sub

Nota: La macro trabaja sin tener que abrir los 600 archivos, pero si tienes demasiados libros sin la hoja "resumen", entonces tendría que cambiar la macro para validar si el libro tiene la hoja "resumen" para tomar las celdas, en este caso, es necesario abrir cada uno de los 600 libros y verificar hoja por hoja si existe la hoja "resumen", esto tomaría más tiempo.


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias!

Estoy poniendo a prueba lo enviado. Me está dando un error 9, subíndice fuera de intervalo, lo estoy tratando de corregir. No tengo mucha experiencia, pero tratare.

En todo caso, ¿te puedo enviar el archivo para que lo revises?

Esto es si no logro resolver.

En tu libro con la macro debes crear la hoja con el nombre "totales"

¡Gracias! 

Ok. ya corre la macro, pero no me trae los totales correcto. como te puedo enviar el archivo con un ejemplo para que lo aprecies mejor?

Envíame tu archivo con la macro y 2 ejemplos

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Miguel Vargas” y el título de esta pregunta.

¡Gracias!

Ya logre corregirlo, de todos modos te lo envío para que me verifiques un pequeño detalle. En el correo te explico.

Pero trabaja de maravilla, mil gracias, hombre.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas