Índice o Hyperlink a hojas de otros libros de Excel





Cuando se trabaja con gran cantidad de información, normalmente se divide en varios libros, surgiendo la necesidad de hacer una macro que realice un Libro Indice, donde al hacer click nos redireccione al libro que queramos consultar , existen varias formas de realizarlo, sin embargo una de las más usadas es a través de hyperlinks o hipervínculos, en este ejemplo se muestra como hacer un hiperlink o hipervinculo a hojas de otro u otros libros de Excel y de esta manera crear un índice de las hojas de todos los libros que queramos tener indexados.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.


  



Anteriormente se han publicado otros ejemplos de macros que trabajan con hiperlink o hipervínculo, como por ejemplo una macro que al hacer click ejecute el programa predeterminado para mandar un correo electrónico o mail,  o cargar una dirección en la base de datos y hacer un hyperlink o hipervinculo a Google Maps para mostrar geográficamente donde se encuentra la dirección; el tema de como insertar un hyperlink en Excel ha sido tratado en varias oportunidades en esta web, sugiero su lectura para entender un poco más sobre la creación de hipervínculos o hyperlinks.




Si quieres aprender o profundizar  sobre el manejo de hojas de Excel, te recomiendo que leas un excelente libro sobre Excel el que te ayudará manejar las planillas de cálculo, debes hacer click acá, si quieres un libro sobre Excel, en inglés, entonces debes hacer click acá. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores curso que he visto en internet.

MASTERCARD PAYONEER

El ejemplo de macro o código de VBA que aquí se presenta, permite realizar un índice de las hojas de todos los libros de Excel seleccionados mediante el explorador archivos de Windows, una vez seleccionados los archivos se procede a indexar todos los libros seleccionados, en la columna A a partir de la fila 2 se agrega el nombre de la hoja indexada, una vez terminado de hacer el índice del primer libro seleccionado, sigue con el resto de libros de los que se requirió realizar el indice, creándose un hipervínculo o hiperlink a dicha hoja del libro; es por ello que al hacer click en el índice se abre el libro respectivo, en la hoja seleccionada.

La macro está preparada para realizar el índice de todos los libros que se requiera sin restricción, es decir se puede seleccionar 1 o 1000 libros para indexar, claro está que a mayor cantidad de libros aumentará el tiempo que utiliza la macro para realizar el indexado.

A medida que se van procesando los archivos en la barra de tareas aparece un mensaje con la cantidad total de libros procesados del total de libros a procesar, o libros de los que se requiere hacer el índice, invito a que vean el ejemplo que desde el link del final se podrá bajar el archivo de ejemplo y adaptarlo a las necesidades de cada uno, el código es libre y no tiene ningún tipo de restricción.

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.




Código que se inserta en un módulo



Sub RealizaIndice()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
Dim uf, ufos, tni, tfp, tpd, r2, r3 As Integer
Dim myfile As Variant
Dim mybook1, mybook, a As String
Dim myi As Long
Dim she As Worksheet
Range("A:A").Clear
Cells(1, 1) = "Indice"

mybook = ActiveWorkbook.Name
myfile = Application.GetOpenFilename("Archivos Excel (*.xl*), *.xl*", , , , True)
If VarType(myfile) = vbBoolean Then
Exit Sub
End If
fila = Sheets("hoja1").Range("A" & Rows.Count).End(xlUp).Row + 1
For myi = LBound(myfile) To UBound(myfile)
Application.StatusBar = "Creando Indice " & myi & " de " & UBound(myfile) & ", aguarde..."
mybook1 = myfile(myi)
Workbooks.Open Filename:=mybook1, UpdateLinks:=0
FullName = Split(mybook1, Application.PathSeparator)
a = FullName(UBound(FullName))
'Workbooks(a).Activate

For Each she In Worksheets
b = she.Name
'Workbooks(mybook).Sheets("hoja1").Hyperlinks.Add Anchor:=Workbooks(mybook).Sheets("hoja1").Cells(fila, 1), _
'Address:=mybook1, SubAddress:=b, TextToDisplay:=b

Workbooks(mybook).Sheets("hoja1").Hyperlinks.Add Anchor:=Workbooks(mybook).Sheets("hoja1").Cells(fila, 1), _
Address:=mybook1, SubAddress:=b & "!A1", TextToDisplay:=b

fila = fila + 1
Next
Workbooks(a).Close False
Next myi

Workbooks(a).Close False
Application.StatusBar = Clear
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub




Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends