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
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.
Sub Cerrar
Dim libro, ruta
ruta = «c:\algo»
for each libro in workbooks
if libro.path = ruta then
libro.close(false)
end if
next
end sub