Lograr indice

En un libro de excel con hojas de diferentes nombres, necesito tener como un indice en donde se detalle los nombres de las hojas. Por ejemplo: mi lbro se llama perfumes vendidos, y cada hoja tiene las ventas de perfumes mensuales, por lo que cada hoja se llama frutales, cítricos, de 40, juveniles, dulces, etc. Ingrese a las opciones de hoja y las visualizo (como explorador). Gracias por la atención PATRICIA

1 Respuesta

Respuesta
1
Para hacer eso tendríamos que crear una macro. Debes presionar Alf-F11, en el menú Insertar-Insertar Módulo digitas esto:
Option Explicit
Sub crear_hoja()
Dim vbynSep
Dim startPos As Long
vbynSep = MsgBox(prompt:="crear nueva hoja para el índice?", Buttons:=vbYesNo)
If vbynSep = vbYes Then
Worksheets.Add
On Error Resume Next
With ActiveSheet
.Move Before:=Sheets(1)
.Name = "Indice"
With Range("A1")
.Value = "Indice"
.Font.Size = 12
.Font.Bold = True
.Font.Underline = xlUnderlineStyleSingle
End With
End With
On Error GoTo 0
startPos = 2
Else
startPos = 0
End If
Call insertar_indice(ByVal startPos)
End Sub
Sub insertar_indice(ByVal startPos)
Dim wksHoja As Worksheet
Dim nrFila As Long
nrFila = startPos
For Each wksHoja In Worksheets
If wksHoja.Name <> ActiveSheet.Name Then
nrFila = nrFila + 1
ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(nrFila, 1), Address:="", _
SubAddress:=wksHoja.Name & "!A1", TextToDisplay:=wksHoja.Name
End If
Next
End Sub
Esto creará una Hoja llamada Indice. Cuando creas una hoja nueva vuelves a correr la macro y se agrega automáticamente. Sería bueno que a la nueva hoja le crees un Hipervínculo al Índice.
[email protected]
¿Esto se lograría si ya tengo información creada? Osea ya tengo va tengo hojas en mi ibro creadas
Mi nivel de excel es macro inicial, sin embargo investigare lo que me dices, pensé algo más fácil
Estamos en contacto
Aquí tienes algo un poquito más simple.
Sub Links_hojas()
Dim wrbLibro As Workbook
Dim wrsHojaActiva As Worksheet, wsHoja As Worksheet
Dim intFila, intColumna As Integer
Set wrbLibro = ActiveWorkbook
Set wrsHojaActiva = ActiveSheet
'en que fila/columna empezar la lista
intFila = 4
intColumna = 1
'el bucle repasa todas las hojas
For Each wsHoja In wrbLibro.Worksheets
'para excluir hoja de los links
If wsHoja.Name = "Hoja555" Then GoTo ProxHoja
'crear links
If wsHoja.Name <> wrsHojaActiva.Name Then
wrsHojaActiva.Hyperlinks.Add wrsHojaActiva.Cells(intFila, intColumna), "", _
SubAddress:="'" & wsHoja.Name & "'!A1", TextToDisplay:=wsHoja.Name
intFila = intFila + 1
End If
ProxHoja:
Next wsHoja
End Sub
[email protected]
Gracias por la atención
De veras eres experto, las formas super sencillas y productivas
aprovechando... las tablas dinámicas las aprendí de la forma
más sencilla, ¿me podrás facilitar ejemplos con soluciones más que
todo quiero para manejarlo con gráficos se puede?
Excelentes soluciones

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas