Formulario de contacto

Nombre

Correo electrónico *

Mensaje *

domingo, 9 de octubre de 2016

Una macro que ordena de manera ascendente/descendente todas las hojas del libro de Excel

Hola qué tal?

En el último artículo, vimos cómo crear una macro que creaba y actualizaba una lista de índice o tabla de contenidos en tu libro de Excel. Esta macro se añadía a una hoja de cálculo

Aquí dejo el enlace por si aún no lo viste:

http://elsabiodeexcel.blogspot.com.mt/2016/10/macro-crear-actualizar-indice-excel.html



En el código VBA de hoy, vamos a añadir la macro al libro. La macro que veremos hoy va a clasificar todas las hojas del libro actual. Puede ordenar tanto en orden ascendente como descendente. La macro ordena por número pero también por orden alfabético. Esto es ideal si se trabaja con un gran número de hojas de cálculo en Excel y documentos que se necesitan ponerlos en orden.


Pero antes de que nos fijemos en la siguiente macro, vamos a introducir rápidamente la sentencia DIM. En el código de la macro de la semana pasada puedes recordar haber visto el siguiente código:

Dim wSheet As Worksheet

Dim l As Long

La instrucción DIM declara muchos tipos diferentes de variables. Estos incluyen números enteros (byte, enteros o largos), números de punto flotante (simples o dobles), cadenas (alfanuméricos), moneda, fecha, booleano y objeto. En el ejemplo anterior, Dim wSheet as Worksheet define la hoja de un objeto. Pero también se define como "l" un número entero largo, empezando por 1.

En cuanto a nuestra próximo código, la primero que hay que hacer es copiar el código de abajo. A continuación, pulse la tecla Alt + F11 para abrir la pantalla de VBA. En el lado izquierdo donde se encuentra el panel vertical, encuentra el archivo de Excel; se llamará VBAProject (NOMBRE DE SU ARCHIVO aquí) y haz clic en él. Abre el archivo de Excel y entre los objetos debemos ver "ThisWorkbook. Selecciona éste y luego pega el código. Ahora puede guardar y cerrar la pantalla de VBA. Para ejecutar la macro, ir a la cinta del desarrollador, seleccione Ejecutar macro y seleccione.

En este código, también hemos establecido una pregunta en un cuadro de mensaje. Dependiendo de la respuesta dada, la macro, con el uso de las instrucciones IF, a continuación, ordenar por orden ascendente o descendente. 






Sub Ordena_hojas()
Dim i As Integer
Dim j As Integer
Dim iAnswer As VbMsgBoxResult

   iAnswer = MsgBox("Ordenar hojas en orden ascendente?" & Chr(10) _
     & "Elige No si quieres ordenar de manera descendent", _
     vbYesNoCancel + vbQuestion + vbDefaultButton1, "Ordenar hojas")
   For i = 1 To Sheets.Count
      For j = 1 To Sheets.Count - 1

         If iAnswer = vbYes Then
            If UCase$(Sheets(j).Name) > UCase$(Sheets(j + 1).Name) Then
               Sheets(j).Move After:=Sheets(j + 1)
            End If

         ElseIf iAnswer = vbNo Then
            If UCase$(Sheets(j).Name) < UCase$(Sheets(j + 1).Name) Then
               Sheets(j).Move After:=Sheets(j + 1)

            End If
         End If

      Next j
   Next i
End Sub

Este código puede parecer difícil para el principiante, sin embargo he mencionado antes de que la mejor manera de aprender el código es explorar ejemplos. La próxima vez que vea este cuadro de mensaje te será mucho más familiar. Y el objetivo es dar algunos códigos que sean de utilidad, así como una herramienta de aprendizaje.

Muchas gracias

*********************************************************************************************

Por cierto si necesitas cursos personalizados de Excel via Skype mándame un email a 
elsabiodeexcel@gmail.com.

Nuevos cursos recientemente creados:

1. Tablas dinámicas - 2-3 horas por skype €45
2. Iniciación a las macros - aprende a tu propio ritmo €50

*********************************************************************************************
El Sabio de Excel les quiere recomendar un nuevo ebook que les explicará todo lo que necesitan saber sobre Power Pivots.

EL ADN DE POWER PIVOT

null
Guía paso a paso sobre Power Pivot, construcción de modelo de datos y el lenguaje DAX, con orientación a inteligencia de negocios.
Viñetas red2   Formato: PDF Libre de DRM, Descarga INMEDIATA.
Viñetas red2   Datos Técnicos: 476 Páginas + Compendio de Archivos
Viñetas red2  Precio: $ 32 95 USD (Dólares Americanos)


El Sabio de Excel recibirá una comisión por cada compra del libro que se realice usando el link de a continuación. Esta comisión ayuda (y mucho) a seguir manteniendo esta web. 




****************************************************************************


Te ha gustado el artículo?



No te olvides de mostrar tu gratitud hacia el autor (yo) mediante una de las 3 siguientes acciones:

1. Puedes invitarme a un café pinchando en la siguiente imagen.

Image result for coffee icon


2. Puedes hacer clic en los anuncios mostrados en la página

3. Puedes recomendar el artículo en Google haciendo clic en g+1 (justo después del artículo), también puedes compartirlo en Facebook, y/o dejar comentarios.

Quieres aprender más en Excel o tienes algún problema que necesita solución?

Puedo ofrecer servicios de consultoría así como cursos personalizados online. Mírate el siguiente enlace si estás interesado/a.



Subscríbete y recibe todos las entradas por email


Para ello regístrate suministrando tu email en el sitio "Recibe los trucos en tu email" del menú de la derecha.

O sígueme por las redes sociales

No hay comentarios:

Publicar un comentario