Macros en Excel

Crear un 铆ndice de tus hojas en un libro Excel

Raymundo Ycaza
#Macros (VBA)#Trucos Excel#馃 Automatizaci贸n con Excel

[resumen]Crear un 铆ndice de las hojas que tiene tu libro de trabajo, te resultar谩 muy 煤til para aquellos casos en los que tienes un mont贸n de pesta帽as y te pierdes en la marea.

Pero, 驴qu茅 hacer para automatizar un poco este proceso? En esta entrada te lo muestro.[/resumen]

La semana pasada recib铆 una consulta sobre un tema relacionado con un libro de trabajo que ten铆a un mont贸n de hojas y, luego de responder a la consulta, me di cuenta de que no ten铆a nada publicado con respecto a crear un 铆ndice de hojas para un libro de trabajo como 茅stos.

As铆 que he decidido dejarte este art铆culo como referencia, para que puedas automatizar esta tarea cuando se te presente dicho problema.

驴Qu茅 quieres decir con 铆ndice?

Cuando trabajamos con muchos datos o reportes semanales o distintos tipos de informes, f谩cilmente logramos armar unos archivos 鈥渕onstruos鈥 con chorrocientas hojas de trabajo que, a medida que va creciendo, nos dificulta m谩s localizar la hoja que buscamos.

Un 铆ndice de hojas, o lo que es lo mismo, un listado con los nombres de todas tus hojas y que adem谩s, al hacer clic sobre 茅stos, autom谩ticamente te lleven a la hoja indicada, ser铆a de mucha ayuda.

驴O no lo crees as铆?

隆Claro que s铆!

Podr铆as hacerlo manualmente, claro; pero 驴qui茅n querr铆a -o qui茅n tendr铆a tiempo para hacerlo- darse a la tarea de crear, uno por uno, los enlaces a 70 hojas de trabajo?

驴T煤 s铆?

隆Pues buena suerte!

Pero si cambias de opini贸n, aqu铆 te dejo una c谩psula de informaci贸n que te ayudar谩 a librarte de ese dolor de cabeza en unos pocos minutos. [h2 icono=""]Crear un 铆ndice de hojas en tres pasos.[/h2] [pasos paso=鈥1鈥漖 Primero, debes insertar un m贸dulo de Excel, tal como te mostr茅 en este art铆culo.[/pasos]

[pasos paso=鈥2鈥漖Luego, pegar谩s el siguiente c贸digo en el m贸dulo que acabas de crear.[/pasos]

Option Explicit

Sub construirIndice()

鈥/*************************************** 鈥 PRIMER PASO: Verificamos que exista 鈥 la hoja 鈥業ndice鈥, de lo 鈥 contrario, la creamos. 鈥***************************************/ Dim hoja As Worksheet On Error Resume Next Set hoja = Worksheets(鈥淚NDICE鈥) On Error GoTo 0

If hoja Is Nothing Then 鈥 Como la hoja no existe, le digo a Excel que la cree. Worksheets.Add(Before:=Worksheets(1)).Name = 鈥淚NDICE鈥 Else 鈥 Si la hoja ya existe, entonces borramos todo 鈥 lo que haya en ella Worksheets(鈥淚NDICE鈥).Cells.Clear End If

鈥 Le ponemos un t铆tulo a la hoja Worksheets(鈥淚ndice鈥).Range(鈥淎1鈥).value = 鈥淚NDICE鈥

鈥/*************************************** 鈥 SEGUNDO PASO: Vamos creando los enlaces 鈥 de cada hoja, una por una. 鈥/*************************************** Dim fila As Long Dim enlaceInicio As String

fila = 2 鈥 驴En qu茅 celda quieres colocar el enlace de regreso al 铆ndice? enlaceInicio = 鈥淏1鈥

For Each hoja In Worksheets If hoja.Name <> 鈥淚NDICE鈥 Then 鈥 Creamos el enlace de regreso. With Worksheets(鈥淚NDICE鈥) .Hyperlinks.Add Anchor:=.Cells(fila, 1), _ Address:="", _ SubAddress:=鈥濃欌 & hoja.Name & 鈥濃!A1鈥, _ TextToDisplay:=hoja.Name End With

    With hoja
        .Hyperlinks.Add Anchor:\=.Range(enlaceInicio), \_
        Address:\="", \_
        SubAddress:\="INDICE!A1", \_
        TextToDisplay:\="INDICE"
    End With
    fila \= fila + 1
End If

Next

End Sub

[pasos paso=鈥3鈥漖Ejecuta la macro desde el 鈥榣anzador de macros鈥. Recuerda que esto ya lo vimos anteriormente.[/pasos]

Hemos terminado

Una vez ejecutada la macro, ver谩s c贸mo se ha creado autom谩ticamente tu 铆ndice de hojas en Excel, dej谩ndote el resto de la tarde libre para tus otras ocupaciones :D

No olvides dejarme tus comentarios cont谩ndome c贸mo te fue con tu propio 铆ndice en Excel.

隆Nos vemos!

鈫 Regresar al Blog