Páginas

martes, 10 de junio de 2014

Cómo crear un índice de hojas en Excel

  En aquellos libros que cuentan con un número elevado de hojas, resulta realmente útil crear un índice que contenga los nombres de las hojas y un enlace o hipervínculo a cada una de ellas.
  Confeccionar este índice de manera manual puede resultar una tarea larga y tediosa, sobre todo si el libro posee una gran cantidad de hojas. Lo ideal sería hacerlo de manera automática utilizando una Macro.
  Para crear el índice manualmente es necesario crear los hipervínculos uno por uno. Ver artículo: Cómo crear hipervínculos en Excel.
  Utilizando una macro el trabajo es mucho más sencillo, una vez creada esta macro, se podrá usar en todos los libros que se desee y el trabajo lo hace Excel de manera casi instantánea.
Este es el código de la macro en cuestión:
Código VBA

  Para poder ejecutar este código, basta con insertarlo (copiar y pegar) en la sección ThisWorkbook de VBA (Visual Basic para Aplicaciones).
  Como se puede apreciar, el código VBA generado es fácil de entender, en primer se comprueba si existe una hoja llamada Indice, en la cual se va a insertar el índice del libro. Si no existe la hoja Indice, esta se crea con la instrucción Worksheets.Add(before:=Worksheets(1)).Name = "Indice". Si la hoja Indice ya existe, se pregunta si se desea sobrescribir y se borran sus datos con la instrucción Worksheets("Indice").Cells.Clear.
  A continuación se crea el índice, se añade el título, en este caso Índice y se crean hipervínculos a todas las hojas del libro.
  Este es el resultado una vez creado el índice:
índice Excel

  La macro se puede ejecutar desde VBA o desde Excel, seleccionando la solapa Vista y a continuación pulsando sobre Macros y Ver macros.
Macros en Excel


Macros en Excel

 En este enlace se puede descargar un ejemplo en Excel 2010.

1 comentario:

  1. Excelente muchas gracias.
    ando viendo como descargar algunas plantillas de excel desde plantillas-excel.com, la verdad es que me hace falta para un proyecto en el que estoy.

    ResponderEliminar