Links hacia las hojas de un cuaderno

09/02/2010 - 23:20 por Oscar | Informe spam
Hola amigos. Tengo un libro-plantilla con 23 hojas y muchas macro y formulas.
Para llegar con rapidez he copiado una macro que hace en la Hoja1 (A9:A33)
una lista con los nombres respectivos de las hojas, siendo cada nombre un
enlace a la respectiva hoja. Aqui esta el codigo respectivo, pero al
ejecutarlo desde un modulo me indica que tiene un error de sintasis,
exactamente en la linea:

wrsHojaActiva.HyperLinks.Add wrsHojaActiva.Cells(intFila, intColumna), _
"", SubAddress:="'" & wsHoja.Name & "'!A1", TextToDisplay:=wsHoja.Name

Podrian ayudarme a encontrar el error?

El codigo completo es
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 = 9
intColumna = 1
'el bucle repasa todas las hojas
For Each wsHoja In wrbLibro.Worksheets
'para excluir hoja de los links
If wsHoja.Name = "Hoja4" 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


Slds
Oscar M

Preguntas similare

Leer las respuestas

#1 Cacho
10/02/2010 - 02:43 | Informe spam
Hola! Oscar. Dos comentarios:

1º) Abajo, a la izquierda de las etiquetas con el nombre de las hojas,
existen 4 pequeños botocitos de dirección.

Si haces clic con el botón derecho de tu ratón sobre cualquiera de esos
cuatro, obtendrás una lista de todas las hojas del libro. Además, al
seleccionar cualquiera de esos nombres, "saltarás" a la hoja respectiva.

Ésa es la razón por la que la macro que muestras no es muy interesante de
implementar (o sea: implementa "algo" que ya existe).

2º) De todos modos, te comento que no he podido reproducir tu problema: me
funciona correctamente ese código.

Por lo que te pregunto: ¿la hoja en laque se intentan colocar los nombres de
las hojas, tienes algún evento "Change" previsto?

Saludos, Cacho.



"Oscar" wrote:

Hola amigos. Tengo un libro-plantilla con 23 hojas y muchas macro y formulas.
Para llegar con rapidez he copiado una macro que hace en la Hoja1 (A9:A33)
una lista con los nombres respectivos de las hojas, siendo cada nombre un
enlace a la respectiva hoja. Aqui esta el codigo respectivo, pero al
ejecutarlo desde un modulo me indica que tiene un error de sintasis,
exactamente en la linea:

wrsHojaActiva.HyperLinks.Add wrsHojaActiva.Cells(intFila, intColumna), _
"", SubAddress:="'" & wsHoja.Name & "'!A1", TextToDisplay:=wsHoja.Name

Podrian ayudarme a encontrar el error?

El codigo completo es
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 = 9
intColumna = 1
'el bucle repasa todas las hojas
For Each wsHoja In wrbLibro.Worksheets
'para excluir hoja de los links
If wsHoja.Name = "Hoja4" 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


Slds
Oscar M
Respuesta Responder a este mensaje
#2 Héctor Miguel
10/02/2010 - 04:53 | Informe spam
hola, Oscar !

Tengo un libro-plantilla con 23 hojas y muchas macro y formulas.
Para llegar con rapidez he copiado una macro que hace en la Hoja1 (A9:A33)
una lista con los nombres respectivos de las hojas, siendo cada nombre un enlace a la respectiva hoja.
Aqui esta el codigo respectivo, pero al ejecutarlo desde un modulo me indica que tiene un error de sintasis
exactamente en la linea:
wrsHojaActiva.HyperLinks.Add wrsHojaActiva.Cells(intFila, intColumna), _
"", SubAddress:="'" & wsHoja.Name & "'!A1", TextToDisplay:=wsHoja.Name

Podrian ayudarme a encontrar el error?



op1: revisa estas conversaciones: http://tinyurl.com/yf7njpv

op2: si le tienes "flojerilla" a las opciones (clic-secundario) en la barra de desplazamiento horizontal (parte baja-izquierda)
prueba con una macro +/- como la siguiente (a la que puedes asignarle un atajo de tecladoI

Sub CambiarHoja()
With Application.CommandBars("workbook tabs").Controls(16)
If Right(.Caption, 3) = "..." Then .Execute Else .Parent.ShowPopup
End With
End Sub

saludos,
hector.

__ el codigo expuesto __
El codigo completo es
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 = 9
intColumna = 1
'el bucle repasa todas las hojas
For Each wsHoja In wrbLibro.Worksheets
'para excluir hoja de los links
If wsHoja.Name = "Hoja4" 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
Respuesta Responder a este mensaje
#3 Oscar
11/02/2010 - 18:44 | Informe spam
Hola Cacho, Hola Hector,
Gracias a ambospor su ayuda.
En el caso del boton derecho sobre barra de desplazamiento horizontal, solo
muestra una ventana con16 lineas y mi plantilla tiene hasta 29 hojas, con lo
que ocurre lo mismo si sigo las flechas. Lo que necesito es 'ir y venir'
desde cualquier hoja a otra.
La opcion que me da Hector se adapta a mi necesidad. "Aunque / pero" (no
resulta comodo decir estas palabras) esta macro muestra una ventana con los
nombres y al seleccionar una de ellas no 'lleva' a la hoja respectiva.
Slds
Oscar M


"Héctor Miguel" escribió:

hola, Oscar !

> Tengo un libro-plantilla con 23 hojas y muchas macro y formulas.
> Para llegar con rapidez he copiado una macro que hace en la Hoja1 (A9:A33)
> una lista con los nombres respectivos de las hojas, siendo cada nombre un enlace a la respectiva hoja.
> Aqui esta el codigo respectivo, pero al ejecutarlo desde un modulo me indica que tiene un error de sintasis
> exactamente en la linea:
> wrsHojaActiva.HyperLinks.Add wrsHojaActiva.Cells(intFila, intColumna), _
> "", SubAddress:="'" & wsHoja.Name & "'!A1", TextToDisplay:=wsHoja.Name
>
> Podrian ayudarme a encontrar el error?

op1: revisa estas conversaciones: http://tinyurl.com/yf7njpv

op2: si le tienes "flojerilla" a las opciones (clic-secundario) en la barra de desplazamiento horizontal (parte baja-izquierda)
prueba con una macro +/- como la siguiente (a la que puedes asignarle un atajo de tecladoI

Sub CambiarHoja()
With Application.CommandBars("workbook tabs").Controls(16)
If Right(.Caption, 3) = "..." Then .Execute Else .Parent.ShowPopup
End With
End Sub

saludos,
hector.

__ el codigo expuesto __
> El codigo completo es
> 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 = 9
> intColumna = 1
> 'el bucle repasa todas las hojas
> For Each wsHoja In wrbLibro.Worksheets
> 'para excluir hoja de los links
> If wsHoja.Name = "Hoja4" 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


.

Respuesta Responder a este mensaje
#4 Cacho
12/02/2010 - 06:08 | Informe spam
Hola! Oscar
Para darte una visión gráfica de lo que estamos hablando, fíjate en la
imagen del siguiente enlace: http://tinyurl.com/yzlusxn

Observa que al dar clic sobre "Más hojas" se despliega una ventana con todas
las hojas del libro como para ser seleccionadas.

Nota que un desarrollo como el que has planteado requiere su "contraparte":
desde la hoja "menú" vas a alguna de las restantes hojas del libro pero
luego "tienes que volver", lo que requiere más código.

Quizás aprovechar lo que la aplicación ya te brinda, sea lo más razonable,
¿no?
Saludos, Cacho.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida