{"id":16002,"date":"2021-07-07T02:23:27","date_gmt":"2021-07-07T07:23:27","guid":{"rendered":"https:\/\/www.perucontable.com\/excelcontable\/?p=16002"},"modified":"2023-11-15T18:45:00","modified_gmt":"2023-11-15T23:45:00","slug":"forzar-al-usuario-a-habilitar-las-macros-en-excel","status":"publish","type":"post","link":"https:\/\/www.perucontable.com\/excelcontable\/forzar-al-usuario-a-habilitar-las-macros-en-excel\/","title":{"rendered":"FORZAR AL USUARIO A HABILITAR LAS MACROS EN EXCEL"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"741\" height=\"389\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-16.png\" alt=\"\" class=\"wp-image-16003\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-16.png 741w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-16-300x157.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-16-696x365.png 696w\" sizes=\"(max-width: 741px) 100vw, 741px\" \/><\/figure><\/div>\n\n\n<p>Las macros est\u00e1n deshabilitadas de forma predeterminada en Microsoft Excel y otras aplicaciones de Microsoft Office, y los usuarios deben habilitarlas expl\u00edcitamente.&nbsp;Este art\u00edculo cubrir\u00e1 los diversos m\u00e9todos que proporciona Excel para habilitar macros y administrar su configuraci\u00f3n de seguridad, lo que le permite ejecutar sus propias macros de forma segura.<\/p>\n\n\n\n<p>Has creado un libro de Excel que ofrece amplia funcionalidad a los usuarios a trav\u00e9s de algunas macros, pero pronto recibes varias llamadas telef\u00f3nicas para avisarte que dicha funcionalidad es inexistente y que el libro de Excel no hace lo que deber\u00eda hacer.<\/p>\n\n\n\n<p>Despu\u00e9s de analizar las posibles causas&nbsp;del error, te das cuenta de que el problema se debe a que los usuarios no habilitan las macros al abrir el archivo y por lo tanto toda la funcionalidad programada es in\u00fatil ya que Excel no ejecutar\u00e1 el c\u00f3digo a menos que el usuario pulse el bot\u00f3n&nbsp;<em>Habilitar contenido<\/em>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"609\" height=\"249\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-17.png\" alt=\"\" class=\"wp-image-16004\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-17.png 609w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-17-300x123.png 300w\" sizes=\"(max-width: 609px) 100vw, 609px\" \/><\/figure><\/div>\n\n\n<p>Si el usuario no realiza dicha acci\u00f3n todas tus macros quedar\u00e1n inhabilitadas por Excel y todo el c\u00f3digo, en el que has puesto tanto&nbsp;empe\u00f1o, dejar\u00e1 de funcionar. \u00bfExiste alguna manera para forzar la ejecuci\u00f3n de las macros en Excel? La respuesta es s\u00ed, y a continuaci\u00f3n revisaremos tres alternativas diferentes para lograrlo.<\/p>\n\n\n\n<p>La primera opci\u00f3n la he incluido&nbsp;en este art\u00edculo para que est\u00e9s enterado de dicha alternativa pero no la recomiendo en lo absoluto y en seguida explico por qu\u00e9.<\/p>\n\n\n\n<h2><strong>HABILITAR TODAS LAS MACROS EN EXCEL<\/strong><\/h2>\n\n\n\n<p>Excel nos permite modificar la configuraci\u00f3n de macros para permitir la ejecuci\u00f3n de cualquier c\u00f3digo sin mostrar notificaci\u00f3n alguna. Dicha configuraci\u00f3n se encuentra en Archivo &gt; Opciones &gt; Centro de confianza &gt; Configuraci\u00f3n del Centro de confianza &gt; Configuraci\u00f3n de macros.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"931\" height=\"309\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-18.png\" alt=\"\" class=\"wp-image-16005\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-18.png 931w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-18-300x100.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-18-768x255.png 768w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-18-696x231.png 696w\" sizes=\"(max-width: 931px) 100vw, 931px\" \/><\/figure>\n\n\n\n<p>Tambi\u00e9n puedes abrir este cuadro de di\u00e1logo desde la pesta\u00f1a Desarrollador &gt; C\u00f3digo &gt; Seguridad de macros. Con este cambio Excel ejecutar\u00e1 autom\u00e1ticamente el c\u00f3digo de cualquier archivo incluyendo el tuyo, pero esa es precisamente la desventaja de este m\u00e9todo, ya que dejar\u00e1 vulnerable el equipo para la ejecuci\u00f3n de cualquier c\u00f3digo malicioso proveniente de otros archivos.<\/p>\n\n\n\n<p>Adem\u00e1s, si el usuario sabe c\u00f3mo cambiar dicha configuraci\u00f3n en Excel, podr\u00e1 regresar al nivel de seguridad que desee y las macros dejar\u00e1n de ejecutarse autom\u00e1ticamente.<\/p>\n\n\n\n<h2><strong>CREAR UNA UBICACI\u00d3N DE CONFIANZA<\/strong><\/h2>\n\n\n\n<p>Es importante recordar que Excel aplica las reglas de seguridad de macros a todas las carpetas del equipo excepto aquellas que est\u00e1n en el cat\u00e1logo de&nbsp;<em>Ubicaciones de confianza<\/em>. Si otorgas el&nbsp;privilegio de \u00ab<em>confianza<\/em>\u00bb a una carpeta, entonces Excel ejecutar\u00e1 autom\u00e1ticamente las macros de todos los archivos contenidos en dicha carpeta.<\/p>\n\n\n\n<p>Para agregar una carpeta a las ubicaciones de confianza debes abrir el mismo cuadro de di\u00e1logo&nbsp;<em>Centro de confianza<\/em>&nbsp;de la secci\u00f3n anterior pero en esta ocasi\u00f3n deber\u00e1s ir a la secci\u00f3n&nbsp;<em>Ubicaciones de confianza<\/em>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-19.png\" alt=\"\" class=\"wp-image-16011\" width=\"760\" height=\"575\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-19.png 908w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-19-300x227.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-19-768x581.png 768w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-19-696x527.png 696w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-19-555x420.png 555w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-19-80x60.png 80w\" sizes=\"(max-width: 760px) 100vw, 760px\" \/><\/figure><\/div>\n\n\n<p>Deber\u00e1s pulsar el bot\u00f3n&nbsp;<em>Agregar nueva ubicaci\u00f3n<\/em>&nbsp;y en el cuadro de di\u00e1logo mostrado deber\u00e1s indicar la ruta de acceso a la carpeta que contendr\u00e1 los archivos de Excel que contienen&nbsp;las macros. Siempre que se abra un archivo de Excel ubicado&nbsp;en dicha carpeta, se ejecutar\u00e1n las macros sin que el usuario tenga que autorizar su ejecuci\u00f3n.<\/p>\n\n\n\n<p>Este m\u00e9todo tiene dos desventajas, la primera es que el usuario mueva o coloque el archivo Excel en otra carpeta y por lo tanto las macros dejar\u00e1n de ejecutarse autom\u00e1ticamente. La otra desventaja es que el usuario puede remover&nbsp;la carpeta de la lista de&nbsp;<em>Ubicaciones de confianza<\/em>&nbsp;ya no se ejecutar\u00e1n autom\u00e1ticamente las macros.<\/p>\n\n\n\n<p>Como se puede ver, estas opciones facilitan la ejecuci\u00f3n de las macros pero de ninguna manera podr\u00e1n&nbsp;forzar al usuario a hacerlo. En cualquier momento se puede revertir la configuraci\u00f3n realizada y las macros dejar\u00e1n de funcionar.<\/p>\n\n\n\n<h2><strong>OBLIGAR LA HABILITACI\u00d3N DE MACROS<\/strong><\/h2>\n\n\n\n<p>El \u00faltimo m\u00e9todo que se va a mostrar es una alternativa conocida desde hace tiempo entre los programadores de Excel. Dicha alternativa se basa en una idea muy simple: Tu libro de trabajo debe tener todas las hojas ocultas y solo una de ellas estar\u00e1 visible al momento de abrir el archivo. Esa hoja visible deber\u00e1 recordar al usuario que debe habilitar las macros.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"694\" height=\"399\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-20.png\" alt=\"\" class=\"wp-image-16014\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-20.png 694w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-20-300x172.png 300w\" sizes=\"(max-width: 694px) 100vw, 694px\" \/><\/figure><\/div>\n\n\n<p>Una vez que el usuario habilite las macros, se ejecutar\u00e1 el c\u00f3digo que mostrar\u00e1 todas las hojas que estaban ocultas. Si el usuario no habilita las macros, lo \u00fanico que observar\u00e1 ser\u00e1 la hoja con la instrucci\u00f3n anterior.<\/p>\n\n\n\n<p>Para lograr nuestro objetivo necesitaremos dos macros: una que se encargar\u00e1 de ocultar todas las hojas al momento de cerrar el archivo y otra macro que mostrar\u00e1 todas las hojas al momento de abrir el archivo y habilitar las macros.&nbsp;El evento que ejecutar\u00e1 nuestro c\u00f3digo al abrir el archivo ser\u00e1 el evento&nbsp;<em>Open<\/em>&nbsp;y&nbsp;el evento que ejecutar\u00e1 el c\u00f3digo al cerrar el archivo ser\u00e1 el evento&nbsp;<em>BeforeClose<\/em>. Ambos eventos pertenecen al objeto Workbook.<\/p>\n\n\n\n<p>Parar crear las macros pulsamos la combinaci\u00f3n de teclas ALT+F11 para abrir el Editor de Visual Basic y en el panel izquierdo hacemos doble clic en el objeto&nbsp;<em>ThisWorkbook<\/em>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/cdn.exceltotal.com\/0605\/forzar-habilitar-macros-excel-05.png\" alt=\"No abrir archivo si no se habilitan las macros en Excel\"\/><\/figure><\/div>\n\n\n<p>La primera macro corresponde al evento&nbsp;<em>Open<\/em>, as\u00ed que nos aseguramos de seleccionar la opci\u00f3n&nbsp;<em>Workbook<\/em>&nbsp;en la primera lista desplegable y la opci\u00f3n&nbsp;<em>Open<\/em>&nbsp;en la segunda lista desplegable. Posteriormente colocamos el siguiente c\u00f3digo VBA:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"624\" height=\"230\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-21.png\" alt=\"\" class=\"wp-image-16015\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-21.png 624w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-21-300x111.png 300w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/figure><\/div>\n\n\n<p>El bucle&nbsp;<em>For-Next<\/em>&nbsp;se encarga de recorrer todas las hojas del libro y hacerlas visibles y finalmente ocultamos la hoja&nbsp;<em>Inicio<\/em>&nbsp;la cual tiene el texto con la instrucci\u00f3n para habilitar las macros. De esta manera, al momento de habilitar las macros se ejecutar\u00e1 el evento&nbsp;<em>Open<\/em>&nbsp;y se mostrar\u00e1n las hojas del libro al usuario.<\/p>\n\n\n\n<p>Ahora debemos asegurarnos de ocultar las hojas al momento que el usuario cierre Excel y para eso debemos agregar el evento&nbsp;<em>BeforeClose<\/em>&nbsp;con el siguiente c\u00f3digo:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"651\" height=\"304\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-22.png\" alt=\"\" class=\"wp-image-16016\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-22.png 651w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/07\/image-22-300x140.png 300w\" sizes=\"(max-width: 651px) 100vw, 651px\" \/><\/figure><\/div>\n\n\n<p>En este caso comenzamos la macro haciendo visible la hoja&nbsp;<em>Inicio<\/em>&nbsp;y posteriormente recorremos todas las hojas del libro con el bule&nbsp;<em>For-Next<\/em>&nbsp;para ocultaras. La instrucci\u00f3n&nbsp;<em>IF<\/em>, dentro del&nbsp;<em>For-Next<\/em>, nos sirve para evitar ocultar de nuevo la hoja&nbsp;<em>Inicio<\/em>. La \u00faltima instrucci\u00f3n del evento guarda los cambios en el libro.<\/p>\n\n\n\n<p>Una vez que hayas implementado ambas macros en tu libro, las hojas se mostrar\u00e1n solamente si el usuario habilita las macros y de esa manera estar\u00e1s forzando el uso de las macros en Excel.<\/p>\n\n\n\n<p><strong>Art\u00edculo que te recomendamos leer:<\/strong><br><strong><a href=\"https:\/\/www.perucontable.com\/excelcontable\/como-filtrar-fechas-en-excel\/\" data-type=\"URL\" data-id=\"https:\/\/www.perucontable.com\/excelcontable\/como-filtrar-fechas-en-excel\/\">C\u00d3MO FILTRAR FECHAS EN EXCEL<\/a><\/strong><\/p>\n\n\n\n<p><strong>\u00bfQu\u00e9 te pareci\u00f3 nuestra blog? Com\u00e9ntanos.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las macros est\u00e1n deshabilitadas de forma predeterminada en Microsoft Excel y otras aplicaciones de Microsoft Office, y los usuarios deben habilitarlas expl\u00edcitamente.&nbsp;Este art\u00edculo cubrir\u00e1 los diversos m\u00e9todos que proporciona Excel para habilitar macros y administrar su configuraci\u00f3n de seguridad, lo que le permite ejecutar sus propias macros de forma segura. Has creado un libro de [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":16006,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[108,1,67,25],"tags":[],"yst_prominent_words":[301,133],"_links":{"self":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/16002"}],"collection":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/comments?post=16002"}],"version-history":[{"count":4,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/16002\/revisions"}],"predecessor-version":[{"id":16851,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/16002\/revisions\/16851"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/media\/16006"}],"wp:attachment":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/media?parent=16002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/categories?post=16002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/tags?post=16002"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/yst_prominent_words?post=16002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}