En tu libro suma total, cambia la macro por esta:
Sub sumar()
'Por.Dante Amor
'
ruta = "C:\trabajo\articulos\"
'
Application.ScreenUpdating = False
ChDir ruta
arch = Dir("*.xls*")
Do While arch <> ""
abierto = False
For Each wb In Workbooks
If wb.Name = arch Then
abierto = True
Exit For
End If
Next
'
If abierto Then
Set l2 = Workbooks(arch)
Else
Set l2 = Workbooks.Open(arch)
End If
For Each h In l2.Sheets
wtot = wtot + h.[C17]
Next
If abierto = False Then
l2.Close True
End If
arch = Dir
Loop
'
Sheets("Hoja1").[C5] = wtot
End Sub
En la misma macro, cambia "C:\trabajo\articulos\", por la ruta en donde se encuentran todos los archivos. Vamos a dejar una ruta fija, de esta forma la macro funcionará en automático, ya no te pedirá que selecciones una ruta.
Ahora tienes que poner la siguiente macro en los eventos de WorkBook.
Private Sub Workbook_Activate()
'Por.DAM
Application.EnableEvents = False
sumar
Application.EnableEvents = True
End Sub
Instrucciones para poner la macro en ThisWorkbook
- Abre tu libro de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
- Del lado derecho copia la macro
Ahora sí, puedes abrir un archivo, actualizar el importe, y cuando regreses al libro "Suma total", el total ya estará actualizado. Puedes actualizar el importe en cualquier hoja de cualquier libro, puedes guardar, cerrar o dejar abierto cualquier libro, siempre que regreses al libro "Suma total" el importe se actualizará.
Incluso puedes tener tu archivo "Suma total" cerrado, actualizar cualquier libro, cualquier hoja; y cuando abras el libro "Suma total" el importe se actualizará.
Cualquier duda avísame.
Saludos. Dante Amor
No olvides valorar la respuesta.