{"id":1714,"date":"2019-05-07T13:22:47","date_gmt":"2019-05-07T20:22:47","guid":{"rendered":"http:\/\/www.auval.com.mx\/notas\/?p=1714"},"modified":"2022-04-04T20:16:32","modified_gmt":"2022-04-05T03:16:32","slug":"macro-para-abrir-y-cerrar-todos-los-archivos-de-un-directorio","status":"publish","type":"post","link":"https:\/\/auval.com.mx\/blog\/en\/2019\/05\/07\/macro-para-abrir-y-cerrar-todos-los-archivos-de-un-directorio\/","title":{"rendered":"Macro para abrir y cerrar todos los archivos de un directorio"},"content":{"rendered":"<p>Con esta macro pueden abrir todos los archivos de un directorio, procesarlos y cerrarlos.<\/p>\n<pre class=\"lang:vb decode:true\">\nSub RevisaDirectorio()\n    Dim ruta As String\n    Dim siguienteArchivo As String\n    Dim libro As Workbook\n    Dim m\u00e1scara As String\n    \n    ruta = InputBox(\"\u00bfQu\u00e9 directorio proceso?\")\n    \n    ruta = ThisWorkbook.Sheets(\"Portada\").Range(\"RutaDirectorio\")\n    If Dir(ruta, vbDirectory) = \"\" Then\n        MsgBox \"El directorio no existe.\"\n    Else\n        ' Si el usuario no le dej\u00f3 la diagonal inversa al final al directorio, se la agrega.\n        If Right(ruta, 1) <> \"\\\" Then ruta = ruta & \"\\\"\n        \n        ' Aqu\u00ed le agrega la extensi\u00f3n de los archivos que quiere revisar.\n        m\u00e1scara = \"*.xls*\"\n        ' Obtiene el primer archivo que est\u00e1 en esa ruta con esa m\u00e1scara.\n        siguienteArchivo = Dir(ruta & m\u00e1scara)\n        \n        ' Cuando ya no encuentra el archivo, regresa \"\"\n        Do While siguienteArchivo <> \"\"\n            Set libro = Workbooks.Open(ruta & siguienteArchivo)\n            \n            ' Aqu\u00ed es donde pueden indicarle qu\u00e9 hacer con el archivo.\n            ' Yo nada m\u00e1s aviso que abr\u00ed el archivo.\n            MsgBox \"Abr\u00ed el archivo \" & ActiveWorkbook.Name\n            \n            \n            \n            \n            \n            ' Si no dejo de copiar, pregunta que si quiero conservar el portapapeles antes de cerrar el archivo.\n            Application.CutCopyMode = xlCopy\n            ' Le digo que lo cierre sin grabarlo.\n            libro.Close (False)\n            ' Toma el siguiente archivo. Para eso, la funci\u00f3n Dir() no lleva par\u00e1metros esta vez.\n            siguienteArchivo = Dir()\n            ' libera el apuntador al libro\n            Set libro = Nothing\n        Loop\n    End If\nEnd Sub\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>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\u00e1scara As String ruta = InputBox(&#8220;\u00bfQu\u00e9 directorio proceso?&#8221;) ruta = ThisWorkbook.Sheets(&#8220;Portada&#8221;).Range(&#8220;RutaDirectorio&#8221;) &hellip;<\/p>\n<p class=\"read-more\"> <a class=\"more-link\" href=\"https:\/\/auval.com.mx\/blog\/en\/2019\/05\/07\/macro-para-abrir-y-cerrar-todos-los-archivos-de-un-directorio\/\"> <span class=\"screen-reader-text\">Macro para abrir y cerrar todos los archivos de un directorio<\/span> Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-1714","post","type-post","status-publish","format-standard","hentry","category-office"],"_links":{"self":[{"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/posts\/1714","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/comments?post=1714"}],"version-history":[{"count":1,"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/posts\/1714\/revisions"}],"predecessor-version":[{"id":1801,"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/posts\/1714\/revisions\/1801"}],"wp:attachment":[{"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/media?parent=1714"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/categories?post=1714"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/auval.com.mx\/blog\/en\/wp-json\/wp\/v2\/tags?post=1714"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}