Nombre de hoja en celda

Hola, quisiera saber cómo puedo hacer que aparezca el nombre de una hoja de CALC en una celda usando una fórmula.
Muchas gracias por anticipado.

Encontré una formula para OpenOffice en el siguiente link:
https://forum-test.openoffice.org/es/forum/viewtopic.php?f=21&t=7054

¿no es posible hacer algo similar en LibreOffice?

@MascaYemas:

Bien por la búsqueda. Debería funcionar en LibreOffice. Una vez que elijas la mejor opción, publícala como respuesta.

Se puede hacer directamente con las funciones de las hojas de cálculo, las dos últimas utilizan una función incorporada en la versión 6.2:

URL fichero

=MID(CELDA("filename");2;HALLAR("'#";CELDA("filename"))-2)

Fichero URL directorio

=MID(CELDA("filename");2;HALLAR("/[^/]+'#";CELDA("filename"))-1)

Esta hoja

=MID(CELDA("filename");ENCONTRAR("#$";CELDA("filename"))+2;LARGO(CELDA("filename")))

Nombre fichero

=MID(CELDA("filename");HALLAR("/[^/]+'#";CELDA("filename"))+1;HALLAR("'#";CELDA("filename"))-HALLAR("/[^/]+'#";CELDA("filename"))-1)

Nombre fichero

=EXP.REG(CELDA("filename");"[^/]+(?='#\$)")

Nombre fichero+Hoja

=EXP.REG(CELDA("filename");"[^/]+(?='#\$)")&"#"&MID(CELDA("filename");ENCONTRAR("#$";CELDA("filename"))+2;LARGO(CELDA("filename")))

Muy bien @mariosv.

1 Like

@MascaYemas,

No encuentro que se pueda devolver el nombre de una hoja, pero sí el número de orden de la hoja.

=CELDA("SHEET";Hoja3.D2) devuelve 3, sin importar el nombre de la hoja, sino su posición contando desde la izquierda. Fuente: LibreOffice Help.

Como solución alternativa, podrías hacer una lista de los nombres de las hojas con su correspondiente número (en la columna que esté a la izquierda de los nombres), y usar en tu fórmula la función BUSCAR.

Si deseas agregar algo a tu pregunta, edítala; también puedes agregar comentarios. Responder está reservado para las soluciones.

Marca la tilde que está a la izquierda de la respuesta que solucione tu inconveniente.

@MascaYemas, Esta macro devuelve el nombre de la hoja de trabajo en la celda activa.

Si alguien sabe cómo transformarlo en una función …

Sub ActivePlan()
Dim oPlan As Object
oPlan = ThisComponent.getCurrentController.getActiveSheet()
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "StringName" : args1(0).Value = oPlan.getName()
CreateUnoService("com.sun.star.frame.DispatchHelper") _
.executeDispatch(ThisComponent.CurrentController.Frame, ".uno:EnterString", "", 0, args1())
End Sub

ATTENTION: If you would like to give more details to your question, use edit in question or add a comment below. Thank you.

If the answer met your need, please click on the ball Descrição da imagem to the left of the answer, to finish the question.

Esta fórmula funciona bien con hojas cuyo nombre tienen el mismo número de caracteres, por ejemplo el número de año.
Lo que hace es contar los dígitos/caracteres finales que corresponden al nombre de la hoja.

En este caso está hecho para un libro con las páginas numeradas como años. Así que 4 es el número de caracteres a mostrar.

=DERECHA(CELDA("filename";B2);4)