{"id":5597,"date":"2014-01-18T08:08:43","date_gmt":"2014-01-18T14:08:43","guid":{"rendered":"http:\/\/aplicaexcelcontable.com\/blog\/?p=5597"},"modified":"2024-12-07T19:24:07","modified_gmt":"2024-12-08T01:24:07","slug":"ejecutar-macro-desde-otra-macro","status":"publish","type":"post","link":"https:\/\/aplicaexcelcontable.com\/blog\/ejecutar-macro-desde-otra-macro.html","title":{"rendered":"Ejecutar macro desde otra macro"},"content":{"rendered":"<h1 style=\"text-align: center;\">Como Ejecutar Macro desde otra Macro<\/h1>\n<p style=\"text-align: justify;\">Comencemos con el articulo del&nbsp;<strong>Curso B\u00e1sico de VBA &#8211; Como Ejecutar Macro desde otra Macro:&nbsp;<\/strong>En los temas anteriores vimos como crear Formularios, como Ejecutarlas desde Excel.<\/p>\n<p style=\"text-align: justify;\">Y si todav\u00eda no has visto el tema anterior, te invito a que lo veas <span style=\"color: rgb(0, 23, 255);\"><a href=\"https:\/\/aplicaexcelcontable.com\/blog\/programar-en-excel-llamar-un-formulario-desde-excel.html\" style=\"outline: none;\" target=\"_blank\"><strong>pulsando clic aqu\u00ed<\/strong><\/a><\/span>. Una vez termines de leer y aplicar los pasos del tema anterior, regresa nuevamente aqu\u00ed y continua con el tema de hoy.<\/p>\n<p style=\"text-align: justify;\">Hoy vamos a conocer <strong>Como llamar y Ejecutar Macro desde otra Macro.<\/strong><\/p>\n<p><span style=\"width: 100%;\"><img loading=\"lazy\" decoding=\"async\" alt=\"Ejecutar Macro\" width=\"393\" height=\"370\" title=\"Ejecuci\u00f3n de Macros desde el Teclado\" data-id=\"42041\" src=\"https:\/\/aplicaexcelcontable.com\/blog\/wp-content\/uploads\/2019\/03\/Ejecuci\u00f3n-de-Macros-desde-el-Teclado.png\" style=\"aspect-ratio: auto 393 \/ 370;\" data-width=\"393\" data-height=\"370\" data-init-width=\"393\" data-init-height=\"370\"><\/span><\/p>\n<h2 style=\"text-align: center;\">Pasos para Ejecutar Macro desde otra Macro<\/h2>\n<p style=\"text-align: justify;\">Muchas veces nos interesa Ejecutar macro o llamar una Macro desde otra Macro.<\/p>\n<p style=\"text-align: justify;\">Esto es muy \u00fatil porque si tenemos un desarrollo muy grande, para mantener ordenado el c\u00f3digo conviene dividir la tarea en distintas Macros y luego vamos ejecutando la Macro que se necesite en cada momento.<\/p>\n<p style=\"text-align: justify;\">Para llamar una Macro desde otra Macro simplemente se escribe el nombre de la Macro invocada dentro del c\u00f3digo de la Macro principal. Por ejemplo, si ejecutamos la Macro1 y queremos que desde la misma se ejecute la Macro2 lo har\u00edamos as\u00ed:<\/p>\n<p style=\"text-align: justify;\">Sub Macro1()<\/p>\n<p style=\"text-align: justify;\">&#8216;El c\u00f3digo de mi Macro1<\/p>\n<p style=\"text-align: justify;\">Macro2<\/p>\n<p style=\"text-align: justify;\">End Sub<\/p>\n<p style=\"text-align: justify;\">Adem\u00e1s, si queremos identificar mejor que estamos llamando una Macro desde otra Macro podemos anteponer la palabra Call.<\/p>\n<p style=\"text-align: justify;\">El efecto es el mismo, solo que al anteponer la instrucci\u00f3n Call, la misma queda en azul autom\u00e1ticamente, y nos permite identificar mejor que estamos llamando otra Macro:<\/p>\n<p style=\"text-align: justify;\">Sub Macro1()<\/p>\n<p style=\"text-align: justify;\">&#8216;El c\u00f3digo de mi Macro1<\/p>\n<p style=\"text-align: justify;\">Call Macro2<\/p>\n<p style=\"text-align: justify;\">End Sub<\/p>\n<h3 style=\"text-align: center;\">Macros que realizan varias funciones &#8211; Ejecutar macro<\/h3>\n<p style=\"text-align: justify;\">Por ejemplo, tenemos una SuperMacro que realiza la siguiente funci\u00f3n sobre el rango seleccionado:<\/p>\n<ul>\n<li><span>1<\/span><span>Se asigna un Formato Num\u00e9rico.<\/span><\/li>\n<li><span>2<\/span><span>De igual forma asigna Bordes.<\/span><\/li>\n<li><span>3<\/span><span>Asigna color de relleno.<\/span><\/li>\n<\/ul>\n<p style=\"text-align: justify;\">El c\u00f3digo de la SuperMacro es el siguiente:<\/p>\n<p style=\"text-align: justify;\">Sub SuperMacro()<\/p>\n<p style=\"text-align: justify;\">&#8216;Asigna Formato Num\u00e9rico<\/p>\n<p style=\"text-align: justify;\">Selection.NumberFormat = \u00ab#,##0;[Red]#,##0\u00bb<\/p>\n<p style=\"text-align: justify;\">&#8216;Asigna Bordes<\/p>\n<p style=\"text-align: justify;\">With Selection.Borders<\/p>\n<p style=\"text-align: justify;\">.LineStyle = xlContinuous<\/p>\n<p style=\"text-align: justify;\">.Weight = xlThin<\/p>\n<p style=\"text-align: justify;\">.ColorIndex = xlAutomatic<\/p>\n<p style=\"text-align: justify;\">End With<\/p>\n<p style=\"text-align: justify;\">&#8216;Asigna Color de Relleno<\/p>\n<p style=\"text-align: justify;\">With Selection.Interior<\/p>\n<p style=\"text-align: justify;\">.ColorIndex = 36<\/p>\n<p style=\"text-align: justify;\">.Pattern = xlSolid<\/p>\n<p style=\"text-align: justify;\">.PatternColorIndex = xlAutomatic<\/p>\n<p style=\"text-align: justify;\">End With<\/p>\n<p style=\"text-align: justify;\">End Sub<\/p>\n<h3 style=\"text-align: center;\">Simplificando Macros &#8211; Ejecutar macro<\/h3>\n<p style=\"text-align: justify;\">Esta SuperMacro podr\u00edamos simplificarla de tal forma que ejecute 3 MiniMacros:<\/p>\n<p style=\"text-align: justify;\">Sub SuperMacro()<\/p>\n<p style=\"text-align: justify;\">Call FormatoN<\/p>\n<p style=\"text-align: justify;\">Call Bordes<\/p>\n<p style=\"text-align: justify;\">Call Relleno<\/p>\n<p style=\"text-align: justify;\">End Sub<\/p>\n<p style=\"text-align: justify;\">La palabra Call se puede omitir pero recomendamos utilizarla para identificar mejor que estamos llamando otras Macros.<\/p>\n<p style=\"text-align: justify;\">Como se ve en el c\u00f3digo, la SuperMacro ejecuta 3 Macros. Estas 3 Macros deben estar ubicadas en el mismo m\u00f3dulo y las escribimos a continuaci\u00f3n:<\/p>\n<p style=\"text-align: justify;\">Sub FormatoN()<\/p>\n<p style=\"text-align: justify;\">&#8216;Asigna Formato Num\u00e9rico<\/p>\n<p style=\"text-align: justify;\">Selection.NumberFormat = \u00ab#,##0;[Red]#,##0\u00bb<\/p>\n<p style=\"text-align: justify;\">End Sub<\/p>\n<p style=\"text-align: justify;\">Sub Bordes()<\/p>\n<p style=\"text-align: justify;\">&#8216;Asigna Bordes<\/p>\n<p style=\"text-align: justify;\">With Selection.Borders<\/p>\n<p style=\"text-align: justify;\">.LineStyle = xlContinuous<\/p>\n<p style=\"text-align: justify;\">.Weight = xlThin<\/p>\n<p style=\"text-align: justify;\">.ColorIndex = xlAutomatic<\/p>\n<p style=\"text-align: justify;\">End With<\/p>\n<p style=\"text-align: justify;\">End Sub<\/p>\n<p style=\"text-align: justify;\">Sub Relleno()<\/p>\n<p style=\"text-align: justify;\">&#8216;Asigna Color de Relleno<\/p>\n<p style=\"text-align: justify;\">With Selection.Interior<\/p>\n<p style=\"text-align: justify;\">.ColorIndex = 36<\/p>\n<p style=\"text-align: justify;\">.Pattern = xlSolid<\/p>\n<p style=\"text-align: justify;\">.PatternColorIndex = xlAutomatic<\/p>\n<p style=\"text-align: justify;\">End With<\/p>\n<p style=\"text-align: justify;\">End Sub<\/p>\n<p style=\"text-align: justify;\">Muy bien, hasta aqu\u00ed con el tema de <strong>Como llamar Macro desde otra Macro<\/strong>, en el pr\u00f3ximo tema vamos a ver sobre \u00abDepuraci\u00f3n y Errores\u00bb.<\/p>\n<p style=\"text-align: justify;\">Si te ha gustado el tema de hoy, te invito a que lo compartas con tus amigos de Facebook pulsando clic en el bot\u00f3n compartir:<\/p>\n<p style=\"text-align: justify;\">Para finalizar, me gustar\u00eda saber que piensas de este articulo \u00abProgramar en Excel &#8211; Ejecutar Macro desde otra Macro\u00bb.<\/p>\n<p style=\"text-align: justify;\">Por lo tanto:<\/p>\n<p style=\"text-align: justify;\">D\u00e9jame tu comentario con dudas, cr\u00edticas constructivas y sugerencia en la secci\u00f3n de comentarios o bien en el Chat. Al mismo tiempo te invito a que visites nuestra pagina de Facebook, <span style=\"color: rgb(0, 23, 255);\"><a href=\"https:\/\/www.facebook.com\/AplicaExceContable\/\" target=\"_blank\" style=\"outline: none;\" rel=\"noopener\"><strong>pulsando clic aqu\u00ed<\/strong><\/a><\/span>.<\/p>\n<p style=\"\">Cualquier duda o pregunta, puedes escribirme directamente en la<span style=\"--tcb-text-highlight-color: rgb(237, 243, 13) !important;\">&nbsp;<\/span><a href=\"#comentario\" style=\"outline: none;\"><span style=\"--tcb-text-highlight-color: rgb(237, 243, 13) !important;\">secci\u00f3n de comentarios<\/span><\/a>, en la <a href=\"https:\/\/aplicaexcelcontable.com\/blog\/contacto\" target=\"_blank\" style=\"outline: none;\"><span style=\"--tcb-text-highlight-color: rgb(231, 100, 224) !important;\" data-text-highlight=\"bubble\">pagina del chat<\/span><\/a>, directamente en <span style=\"--tcb-text-highlight-color: rgb(30, 184, 76) !important;\">whatsapp<\/span> o bien al correo electr\u00f3nico rogerperez@aplicaexcelcontable.com.<span style=\"--tcb-text-highlight-color: transparent !important;\"><\/span><\/p>\n<p style=\"\">Te saluda,<span style=\"--tcb-text-highlight-color: transparent !important;\"><\/span><\/p>\n<p style=\"\"><strong>Roger Perez \u2013 Aplica Excel Contable<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como Ejecutar Macro desde otra Macro Comencemos con el articulo del&nbsp;Curso B\u00e1sico de VBA &#8211; Como Ejecutar Macro desde otra Macro:&nbsp;En los temas anteriores vimos como crear Formularios, como Ejecutarlas desde Excel. Y si todav\u00eda no has visto el tema anterior, te invito a que lo veas pulsando clic aqu\u00ed. Una vez termines de leer [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":42041,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,4],"tags":[293,292,27,12,295,294],"class_list":["post-5597","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-curso-basico-de-vba","category-programar-en-excel","tag-aprender-excel","tag-excel-y-contabilidad","tag-macros","tag-macros-en-excel","tag-plantillas-excel","tag-programar-en-excel","post-wrapper","thrv_wrapper"],"_links":{"self":[{"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/posts\/5597","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/comments?post=5597"}],"version-history":[{"count":0,"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/posts\/5597\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/media\/42041"}],"wp:attachment":[{"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/media?parent=5597"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/categories?post=5597"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aplicaexcelcontable.com\/blog\/wp-json\/wp\/v2\/tags?post=5597"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}