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.
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 |
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 |
Deja una respuesta