Macro para abrir y cerrar todos los archivos de un directorio

Con esta macro pueden abrir todos los archivos de un directorio, procesarlos y cerrarlos.

Sub RevisaDirectorio()
    Dim ruta As String
    Dim siguienteArchivo As String
    Dim libro As Workbook
    Dim máscara As String
    
    ruta = InputBox("¿Qué directorio proceso?")
    
    ruta = ThisWorkbook.Sheets("Portada").Range("RutaDirectorio")
    If Dir(ruta, vbDirectory) = "" Then
        MsgBox "El directorio no existe."
    Else
        ' Si el usuario no le dejó la diagonal inversa al final al directorio, se la agrega.
        If Right(ruta, 1) <> "\" Then ruta = ruta & "\"
        
        ' Aquí le agrega la extensión de los archivos que quiere revisar.
        máscara = "*.xls*"
        ' Obtiene el primer archivo que está en esa ruta con esa máscara.
        siguienteArchivo = Dir(ruta & máscara)
        
        ' Cuando ya no encuentra el archivo, regresa ""
        Do While siguienteArchivo <> ""
            Set libro = Workbooks.Open(ruta & siguienteArchivo)
            
            ' Aquí es donde pueden indicarle qué hacer con el archivo.
            ' Yo nada más aviso que abrí el archivo.
            MsgBox "Abrí el archivo " & ActiveWorkbook.Name
            
            
            
            
            
            ' Si no dejo de copiar, pregunta que si quiero conservar el portapapeles antes de cerrar el archivo.
            Application.CutCopyMode = xlCopy
            ' Le digo que lo cierre sin grabarlo.
            libro.Close (False)
            ' Toma el siguiente archivo. Para eso, la función Dir() no lleva parámetros esta vez.
            siguienteArchivo = Dir()
            ' libera el apuntador al libro
            Set libro = Nothing
        Loop
    End If
End Sub

2 comentarios en «Macro para abrir y cerrar todos los archivos de un directorio»

  1. Gracias es buen metodo para abrir todos los archivos en una sola vez… pero sigo sin encontrar Cómo CERRAR todos los archivos abiertos de excel en una carpeta especifica, todos cerrar en una sola vez…Ojala me pudieras Ayudar.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

*