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
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
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.
Formato: PDF Libre de DRM, Descarga INMEDIATA.
Datos Técnicos: 476 Páginas + Compendio de Archivos
Precio: $ 32 95 USD (Dólares Americanos)
****************************************************************************
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.
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.
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.
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.
No hay comentarios:
Publicar un comentario