Buenos dias,
me gustaria generar de forma automatica un indice a partir de los nombres de las hojas de un fichero Calc.
Supongamos que tenemos 6 hojas; indice, a,b,c,d,e.
En la hoja indice deberia generarse automaticamente una lista a partir de los nombres de las otras hojas, es decir, a, b,c,d,e.
A su vez, cada nombre de la lista deberia estar hipervinculado con la hoja a la que corresponde, de tal forma que si, por ejemplo, hacemos click sobre la letra "c" del indice, se muestre la cuarta hoja ("c").
Muchas gracias por adelantado
Indice hipervinculado a hojas de un fichero o libro
-
RobertThomson
- Mensajes: 1
- Registrado: Mié Mar 30, 2016 1:22 pm
Indice hipervinculado a hojas de un fichero o libro
OpenOffice 4.1.2 on Windows 7 Entreprise
Re: Indice hipervinculado a hojas de un fichero o libro
Sugerencias:
- Crea una macro con la grabadora que inserte en una celda un hiperenlace a la hoja 1 de tu documento
Modifica la macro para que pueda servir para cualquier nombre de hoja
Ahora utilizando el sistema que encontrarás en este enlace para recorrer las hojas de un libro, y de posicionar el cursor en distintas celdas, genera el bucle para que:
- Se situe en la primera celda
- Lea el nombre de la primera hoja
- Inserte el hiperenlace llamando a la función grabada
- Repita el bucle con la siguiente celda/hoja
Luego seguro que podrás fácilmente asignar la macro a un botón en tu barra de herramientas para invocarla con facilidad
Espero te sirva
- Crea una macro con la grabadora que inserte en una celda un hiperenlace a la hoja 1 de tu documento
Código: Seleccionar todo
sub InsertarEnlaceAHoja
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(4) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Hyperlink.Text"
args1(0).Value = "#Hoja1"
args1(1).Name = "Hyperlink.URL"
args1(1).Value = "#Hoja1"
args1(2).Name = "Hyperlink.Target"
args1(2).Value = ""
args1(3).Name = "Hyperlink.Name"
args1(3).Value = ""
args1(4).Name = "Hyperlink.Type"
args1(4).Value = 1
dispatcher.executeDispatch(document, ".uno:SetHyperlink", "", 0, args1())
end subCódigo: Seleccionar todo
sub InsertarEnlaceAHoja( cNomHoja as String )
rem ----------------------------------------------------------------------
rem define variables
dim document as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------
dim args1(4) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Hyperlink.Text"
args1(0).Value = "#" & cNomHoja
args1(1).Name = "Hyperlink.URL"
args1(1).Value = "#" & cNomHoja
args1(2).Name = "Hyperlink.Target"
args1(2).Value = ""
args1(3).Name = "Hyperlink.Name"
args1(3).Value = ""
args1(4).Name = "Hyperlink.Type"
args1(4).Value = 1
dispatcher.executeDispatch(document, ".uno:SetHyperlink", "", 0, args1())
end sub- Se situe en la primera celda
- Lea el nombre de la primera hoja
- Inserte el hiperenlace llamando a la función grabada
- Repita el bucle con la siguiente celda/hoja
Luego seguro que podrás fácilmente asignar la macro a un botón en tu barra de herramientas para invocarla con facilidad
Espero te sirva
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas