Excel - Abrir,actualizar y guardar 45 archivos a la vez

 
Vista:

Abrir,actualizar y guardar 45 archivos a la vez

Publicado por Nimuhe (1 intervención) el 20/05/2021 08:30:29
Buenos dias,
Cada dia tengo que abrir, pinchar sobre una dinámica y darle a "Actualizar todo" 2 veces ya que a la primera no salen todos los datos actualizados y guardar..

asi con 45 archivos ...uno detrás de otro

no habría alguna forma de programar la apertura, actualización doble y guardado de esos 45 archivos independientes?

gracias, un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 3
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

Abrir,actualizar y guardar 45 archivos a la vez

Publicado por David (11 intervenciones) el 22/05/2021 00:10:51
Hola, es raro que debas 2 veces para actualizar. Tienes un video de lo que sucede?.
Todos los archivos estan en la misma ubicación (carpeta) ?

Que versión de excel utilizas, es un libro compartido ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha aumentado su posición en 10 puestos en Excel (en relación al último mes)
Gráfica de Excel

Abrir,actualizar y guardar 45 archivos a la vez

Publicado por David (11 intervenciones) el 22/05/2021 06:12:44
Hola, este archivo sirve para seleccionar una carpeta y dentro de ella procesara todos los archivos excel que existan. Recorrerá todas sus hojas para actualizar todas las tablas dinámicas si es que existen.
Por último, mostrará un detalle de los libros, hojas y tablas procesadas exitosamente.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
Sub ActualizaTablas()
'@dj.vivanco 21-05-2021
' ActualizaTablas Macro
 
Application.DisplayAlerts = False
Application.ScreenUpdating = False
 
Dim fso As Object, nv As Object
Dim carpeta As Variant, archivos As Object
Dim hoja As Worksheet, pivot As PivotTable
 
On Error Resume Next
 
Set nv = CreateObject("shell.application")
ubicacion = nv.browseforfolder(0, "Selecciona una carpeta", 0, wpath).items.Item.Path
 
If ubicacion = "" Then
    MsgBox "Cancelado"
Else
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set carpeta = fso.getFolder(ubicacion)
    Set archivos = carpeta.Files
 
    estelibro = ThisWorkbook.Name
    fila = 2
    Range("E2:G1000").ClearContents
    For Each archivo In archivos
 
        extension = Right(archivo.Name, 4)
 
        If extension Like "*xls*" Then 'por cada archivo que sea de tipo excel
 
            'abrir libro
            Set libro = Workbooks.Open(archivo)
            nombreLibro = libro.Name
            Workbooks(estelibro).Sheets("Procesar").Range("E" & fila).Value = nombreLibro
 
            'recorrer cada hoja del libro y actualizar las tablas
            For Each hoja In libro.Worksheets
                For Each pivot In hoja.PivotTables
                    Workbooks(estelibro).Sheets("Procesar").Range("F" & fila).Value = hoja.Name
                    Workbooks(estelibro).Sheets("Procesar").Range("G" & fila).Value = pivot.Name
                    pivot.RefreshTable
                    pivot.Update
                    fila = fila + 1
                Next
            Next
 
            libro.Close True
            Set libro = Nothing
            fila = fila + 1
        End If
    Next archivo
 
    End If
 
    On Error GoTo 0
 
 
    MsgBox "Proceso terminado"
 
 
    Application.DisplayAlerts = True
    Application.ScreenUpdating = True
 
End Sub

Saludos.

Screenshot_1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar