{"id":16576,"date":"2021-08-27T02:02:13","date_gmt":"2021-08-27T07:02:13","guid":{"rendered":"https:\/\/www.perucontable.com\/excelcontable\/?p=16576"},"modified":"2023-11-14T19:42:30","modified_gmt":"2023-11-15T00:42:30","slug":"macro-para-ordenar-hojas-de-excel-alfabeticamente","status":"publish","type":"post","link":"https:\/\/www.perucontable.com\/excelcontable\/macro-para-ordenar-hojas-de-excel-alfabeticamente\/","title":{"rendered":"MACRO PARA ORDENAR HOJAS DE EXCEL ALFAB\u00c9TICAMENTE"},"content":{"rendered":"<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\/08\/image-155.png\" alt=\"\" class=\"wp-image-16580\" width=\"509\" height=\"306\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-155.png 557w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-155-300x180.png 300w\" sizes=\"(max-width: 509px) 100vw, 509px\" \/><\/figure><\/div>\n\n\n<p>Excel no es s\u00f3lo una herramienta para llevar los datos y la contabilidad de las empresas. Su potencia reside en que sirve para clasificar y administrar casi cualquier cosa de manera sencilla y r\u00e1pida. Podemos crear agendas, cuadrantes de trabajo, libretas de direcciones,&nbsp;plantillas de factura, registros de asistencia. Sin embargo, Excel no permite organizar las hojas de los libros de trabajo, algo muy \u00fatil cuando trabajamos con libros extensos. <\/p>\n\n\n\n<p>Las hojas de un libro de Excel nos permiten gestionar adecuadamente nuestros datos, pero si llegamos a tener una cantidad considerable de hojas se dificultar\u00e1 el encontrar algunas de ellas. La soluci\u00f3n ser\u00eda&nbsp;ordenar las hojas de Excel alfab\u00e9ticamente&nbsp;de manera que se nos facilite su b\u00fasqueda con una macro en c\u00f3digo Visual Basic.<\/p>\n\n\n\n<p>Para este ejemplo utilizar\u00e9 un libro de Excel que contiene 183 hojas que han sido insertadas de manera aleatoria, cada una con el nombre de un pa\u00eds, pero con tantas hojas en el libro se ha convertido en un dolor de cabeza el encontrar la hoja correspondiente a cualquier pa\u00eds, as\u00ed que he tomado la decisi\u00f3n de ordenarlas alfab\u00e9ticamente.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"928\" height=\"231\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-156.png\" alt=\"\" class=\"wp-image-16582\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-156.png 928w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-156-300x75.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-156-768x191.png 768w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-156-696x173.png 696w\" sizes=\"(max-width: 928px) 100vw, 928px\" \/><\/figure><\/div>\n\n\n<p>Por supuesto que tendr\u00edamos la opci\u00f3n de ordenar hoja por hoja de manera manual, pero eso nos llevar\u00eda un tiempo considerable por lo que en esta ocasi\u00f3n crearemos una&nbsp;<strong>macro para ordenar hojas en Excel<\/strong>&nbsp;y automatizar por completo este proceso.<\/p>\n\n\n\n<h2><strong>MACRO PARA ORDENAR HOJAS DE EXCEL ALFAB\u00c9TICAMENTE<\/strong><\/h2>\n\n\n\n<p>La macro es muy sencilla ya que haremos un recorrido de todas las hojas del libro utilizando dos bucles For-Next. El primer bucle nos servir\u00e1 para tomar hoja por hoja y el segundo bucle para comparar cada una de ellas con el resto de las hojas del libro. Si al hacer la comparaci\u00f3n descubrimos que alguna hoja debe ir detr\u00e1s de la otra haremos el movimiento correspondiente. Para crear esta macro abrir\u00e9 el&nbsp;Editor de Visual Basic&nbsp;y crear\u00e9 un nuevo m\u00f3dulo (Insertar &gt; M\u00f3dulo) donde colocar\u00e9 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=\"813\" height=\"252\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-163.png\" alt=\"\" class=\"wp-image-16589\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-163.png 813w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-163-300x93.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-163-768x238.png 768w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-163-696x216.png 696w\" sizes=\"(max-width: 813px) 100vw, 813px\" \/><\/figure><\/div>\n\n\n<p>Observa con detenimiento que este c\u00f3digo hace la comparaci\u00f3n de dos hojas a la vez con la siguiente l\u00ednea de c\u00f3digo:<\/p>\n\n\n\n<p><code><strong>If UCase(Sheets(a).Name) &gt; UCase(Sheets(s).Name) Then<\/strong><\/code><\/p>\n\n\n\n<p>Nuestro c\u00f3digo utiliza dos variables para recorrer todas las hojas. La variable \u00aba\u00bb indica la hoja actual y la variable \u00abs\u00bb ser\u00e1 la hoja siguiente a la hoja actual. La&nbsp;<em>funci\u00f3n Ucase<\/em>&nbsp;convierte en may\u00fasculas el nombre de ambas hojas para poder compararlas correctamente y utilizamos el operador&nbsp;<em>mayor que<\/em>&nbsp;(&gt;) para saber si la hoja actual es mayor que la hoja siguiente.<\/p>\n\n\n\n<p>En programaci\u00f3n, una cadena de texto ser\u00e1 mayor que la otra si sus letras iniciales aparecen despu\u00e9s en el alfabeto.&nbsp; Lo que evaluamos con nuestra instrucci\u00f3n es si el nombre de la hoja actual aparece despu\u00e9s (<em>en el alfabeto<\/em>) que el nombre de la hoja siguiente. Si dicha condici\u00f3n se cumple, entonces ser\u00e1 necesario moverlas de posici\u00f3n para comenzar a ordenar alfab\u00e9ticamente. Eso es precisamente lo que hacemos con la siguiente l\u00ednea de nuestro c\u00f3digo:<\/p>\n\n\n\n<p><strong>Sheets(s).Move Before:=Sheets(a)<\/strong><\/p>\n\n\n\n<h2><strong>ORDENAR HOJAS DE EXCEL DE MANERA DESCENDENTE<\/strong><\/h2>\n\n\n\n<p>Antes de probar nuestra macro, crearemos una variante que nos permitir\u00e1&nbsp;<strong>ordenar las hojas de Excel de manera descendente<\/strong>. Los cambios ser\u00e1n m\u00ednimos y los puedes ver en 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=\"817\" height=\"286\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-164.png\" alt=\"\" class=\"wp-image-16590\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-164.png 817w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-164-300x105.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-164-768x269.png 768w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-164-696x244.png 696w\" sizes=\"(max-width: 817px) 100vw, 817px\" \/><\/figure><\/div>\n\n\n<p>Puedes notar que existen solamente dos peque\u00f1os cambios, el primero de ellos es evidente ya que he cambiado el nombre de la subrutina para indicar que se trata de un orden descendente. El segundo cambio es el uso del operador&nbsp;<em>menor que<\/em>&nbsp;(&lt;) en la comparaci\u00f3n de los nombres de las hojas. Esta simple modificaci\u00f3n nos permitir\u00e1 cambiar la direcci\u00f3n de ordenaci\u00f3n de las hojas para comenzar en la letra Z y terminar en la letra A.<\/p>\n\n\n\n<h2><strong>ORDENAR HOJAS DE EXCEL CON UNA MACRO<\/strong><\/h2>\n\n\n\n<p>Una vez creadas ambas subrutinas probaremos el funcionamiento de cada una de ellas. Para hacerlo puedes hacer clic en la ficha Vista &gt; Macros para mostrar el cuadro de di\u00e1logo&nbsp;<em>Macro<\/em>&nbsp;el cual enlistar\u00e1 el nombre de las macros reci\u00e9n creadas.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"429\" height=\"364\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-159.png\" alt=\"\" class=\"wp-image-16585\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-159.png 429w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-159-300x255.png 300w\" sizes=\"(max-width: 429px) 100vw, 429px\" \/><\/figure><\/div>\n\n\n<p>Este cuadro de di\u00e1logo tambi\u00e9n lo puedes abrir desde la ficha Programador &gt; C\u00f3digo &gt; Macros. Una vez abierto el cuadro de di\u00e1logo deber\u00e1s elegir la macro deseada y pulsar el bot\u00f3n&nbsp;<em>Ejecutar<\/em>. Si elegimos la subrutina&nbsp;<em>OrdenarHojas_Ascendente<\/em>, el resultado ser\u00e1 el siguiente:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"895\" height=\"233\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-160.png\" alt=\"\" class=\"wp-image-16586\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-160.png 895w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-160-300x78.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-160-768x200.png 768w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-160-696x181.png 696w\" sizes=\"(max-width: 895px) 100vw, 895px\" \/><\/figure><\/div>\n\n\n<p>Si por el contrario, elegimos la macro llamada&nbsp;<em>OrdenarHojas_Descendente<\/em>, las hojas del libro se comenzar\u00e1n a ordenar a partir de la letra Z y en orden descendente tal como lo puedes observar en la siguiente imagen:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img decoding=\"async\" loading=\"lazy\" width=\"724\" height=\"230\" src=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-162.png\" alt=\"\" class=\"wp-image-16588\" srcset=\"https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-162.png 724w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-162-300x95.png 300w, https:\/\/www.perucontable.com\/excelcontable\/wp-content\/uploads\/2021\/08\/image-162-696x221.png 696w\" sizes=\"(max-width: 724px) 100vw, 724px\" \/><\/figure><\/div>\n\n\n<p>De esta manera podemos&nbsp;<strong>ordenar hojas de Excel<\/strong>&nbsp;ya sea de manera ascendente o descendente con tan solo ejecutar una macro y as\u00ed podremos encontrar r\u00e1pidamente la hoja que necesitemos.&nbsp;Notamos que las \u00fanicas dos diferencias entre ambas instrucciones son el nombre de referencia en la primer l\u00ednea de c\u00f3digo y el signo \u00abmayor que\u00bb y \u00abmenor que\u00bb en la cuarta l\u00ednea del c\u00f3digo.<\/p>\n\n\n\n<p>Esta macro es muy \u00fatil si disponemos de muchas hojas y necesitamos ordenarlas de forma r\u00e1pida y pr\u00e1ctica, que de otra forma demorar\u00eda mucho tiempo en realizar.<\/p>\n\n\n\n<p><strong>Art\u00edculo que te recomendamos leer:<\/strong><br><strong><a href=\"https:\/\/www.perucontable.com\/excelcontable\/funcion-contar-si-cuando-existen-mayusculas\/\" data-type=\"URL\" data-id=\"https:\/\/www.perucontable.com\/excelcontable\/funcion-contar-si-cuando-existen-mayusculas\/\">FUNCI\u00d3N CONTAR.SI CUANDO EXISTEN MAY\u00daSCULAS<\/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>Excel no es s\u00f3lo una herramienta para llevar los datos y la contabilidad de las empresas. Su potencia reside en que sirve para clasificar y administrar casi cualquier cosa de manera sencilla y r\u00e1pida. Podemos crear agendas, cuadrantes de trabajo, libretas de direcciones,&nbsp;plantillas de factura, registros de asistencia. Sin embargo, Excel no permite organizar las [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":16592,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[108,67,25],"tags":[],"yst_prominent_words":[301,133,161,331],"_links":{"self":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/16576"}],"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=16576"}],"version-history":[{"count":5,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/16576\/revisions"}],"predecessor-version":[{"id":16809,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/posts\/16576\/revisions\/16809"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/media\/16592"}],"wp:attachment":[{"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/media?parent=16576"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/categories?post=16576"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/tags?post=16576"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/www.perucontable.com\/excelcontable\/wp-json\/wp\/v2\/yst_prominent_words?post=16576"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}