Macro para generar indices

6 envíos / 0 nuevos
Último envío
yonigrinwod
Imagen de yonigrinwod
Offline
última acción: Hace 5 años 2 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 18/09/2010 - 20:28
Puntos: 875
Macro para generar indices

Hace algunos meses encontre esta macro y la corri y me funciono pero ya no me funciona

me pone las letras en rojo en esta parte

.Range("A1?).Name = "Inicio" & cHoja.Index
.Hyperlinks.Add Anchor:=.Range("A1?), Address:=" ", SubAddress:="Indice", TextToDisplay:="Volver al índice"

me pueden ayudar por favor a corregirla

saludos


Private Sub Worksheet_Activate()
Dim cHoja As Worksheet
Dim L As Long
L = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = "INDICE"
.Cells(1, 1).Name = "Indice"
End With
For Each cHoja In Worksheets
If cHoja.Name <> Me.Name Then
L = L + 1
With cHoja
.Range("A1?).Name = "Inicio" & cHoja.Index
.Hyperlinks.Add Anchor:=.Range("A1?), Address:=" ", SubAddress:="Indice", TextToDisplay:="Volver al índice"
End With
Me.Hyperlinks.Add Anchor:=Me.Cells(L, 1), Address:=" ", SubAddress:="Inicio" & cHoja.Index, TextToDisplay:=cHoja.Name
End If
Next cHoja
End Sub

pacomegia
Imagen de pacomegia
Online
última acción: Hace 3 mins 6 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 9975
comprueba las comillas

Así a primera vista, parece que pueden fallar las comillas

.Range("A1?)


prueba con 

.Range("A1")

 

Data Tools Suite
datos y tablas con Excel

yonigrinwod
Imagen de yonigrinwod
Offline
última acción: Hace 5 años 2 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 18/09/2010 - 20:28
Puntos: 875
Re: Macro para generar indices

ya corregi esa parte

 

ahora me pone en amarillo esta parte Public Sub Worksheet_Activate()

 

y me sombrea esta parte Me

 

Public Sub Worksheet_Activate()
Dim cHoja As Worksheet
Dim L As Long
L = 1
With Me
.Columns(1).ClearContents
.Cells(1, 1) = "INDICE"
.Cells(1, 1).Name = "Indice"
End With
For Each cHoja In Worksheets
If cHoja.Name <> Me.Name Then
L = L + 1
With cHoja
.Range("A1").Name = "Inicio" & cHoja.Index
.Hyperlinks.Add Anchor:=.Range("A1"), Address:=" ", SubAddress:="Indice", TextToDisplay:="Volver al índice"
End With
Me.Hyperlinks.Add Anchor:=Me.Cells(L, 1), Address:=" ", SubAddress:="Inicio" & cHoja.Index, TextToDisplay:=cHoja.Name
End If
Next cHoja
End Sub

 

pacomegia
Imagen de pacomegia
Online
última acción: Hace 3 mins 6 segs
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 9975
Re: Macro para generar indices

Vaya, pues la he copiado y pegado y me funciona bien, crea un índice con hipervínculos a las hojas del libro.

(por cierto, ¿seguro que quieres que el índice se regenere cada vez que activas la hoja?)

 

¿te dá alguna información del número de error o lo describe de alguna manera?

 

Data Tools Suite
datos y tablas con Excel

yonigrinwod
Imagen de yonigrinwod
Offline
última acción: Hace 5 años 2 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 18/09/2010 - 20:28
Puntos: 875
Re: Macro para generar indices

me pone este mensaje la ayuda

 

Uso no válido de la palabra clave Me
Vea también     Detalles

La palabra clave Me puede aparecer en módulos de clase. Las causas y posibles soluciones de este error son las siguientes:

La palabra clave Me apareció en un módulo estándar.
La palabra clave Me no puede aparecer en un módulo estándar puesto que estos módulos no representan ningún objeto. Si copió el código en cuestión desde un módulo de clase, tiene que reemplazar la palabra clave Me por el nombre del objeto o formulario específico para conservar la referencia original.

La palabra clave Me aparece en la parte izquierda de una asignación Set, por ejemplo:
Set Me = MiObjeto    ' Causa "Uso no válido de la palabra clave Me"
Elimine la asignación Set.

Nota   La palabra clave Me puede aparecer en la parte izquierda de una asignación Let, en cuyo caso se establece la propiedad predeterminada del objeto representado por Me. Por ejemplo:

Let Me = MiObjeto    ' Asignación válida con Let explícito.
Me = MiObjeto        ' Asignación válida con Let implícito.
Si desea más información, seleccione el tema en cuestión y presione F1 (en Windows) o Ayuda (en Macintosh).

yonigrinwod
Imagen de yonigrinwod
Offline
última acción: Hace 5 años 2 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 18/09/2010 - 20:28
Puntos: 875
Re: Macro para generar indices

ya detecte el error lo estaba poniendo en un modulo incorrecto

 

saludos

 

muchas gracias por tu ayuda