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
Lun, 14/01/2013 - 23:35
#1
Macro para generar indices
Así a primera vista, parece que pueden fallar las comillas
.Range("A1?)
prueba con
.Range("A1")
------
Ya sé Excel, pero necesito más.
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
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?
------
Ya sé Excel, pero necesito más.
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).
ya detecte el error lo estaba poniendo en un modulo incorrecto
saludos
muchas gracias por tu ayuda