Foŕmula para obtener la ruta (path)sin el nombre de fichero
Foŕmula para obtener la ruta (path)sin el nombre de fichero
Buenas,
estoy intentando crear un hyperlink desde una celda a una imagen que está dentro de una carpeta donde se encuentra el fichero de la hoja de cálculo.
He visto que con la función =CELL("filename") obtengo la ruta del fichero, el nombre y la hoja en la que me encuentro.
Me gustaría saber cómo obtengo sólo la ruta.
Mi función actual es:
=IF(G7<>"";HYPERLINK(""&$'DATOS'.$A$8&"\"&G7&".tif";""&F7&""))
Debo añadir a la izquierda de DATOS, la ruta donde me encuentro. O bien si existe una manera de pasar la ruta relativa desde la que me encuentro para que el HYPERLINK tenga la ruta completa.
Muchas gracias, un saludo!
estoy intentando crear un hyperlink desde una celda a una imagen que está dentro de una carpeta donde se encuentra el fichero de la hoja de cálculo.
He visto que con la función =CELL("filename") obtengo la ruta del fichero, el nombre y la hoja en la que me encuentro.
Me gustaría saber cómo obtengo sólo la ruta.
Mi función actual es:
=IF(G7<>"";HYPERLINK(""&$'DATOS'.$A$8&"\"&G7&".tif";""&F7&""))
Debo añadir a la izquierda de DATOS, la ruta donde me encuentro. O bien si existe una manera de pasar la ruta relativa desde la que me encuentro para que el HYPERLINK tenga la ruta completa.
Muchas gracias, un saludo!
OpenOffice 2.4 en Ubuntu 9.04
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Creo que la manera más "limpia" puede ser hacer una función que te devuelva el texto que quieres.
En la página 145 del libro de Mauricio AprendiendoOOBasic he encontrado esto
En la página 145 del libro de Mauricio AprendiendoOOBasic he encontrado esto
Código: Seleccionar todo
Sub DocumentoActivoMostrarDatos()
Dim sRutaURL As String
Dim sRutaCompleta As String
Dim sRuta As String
Dim sNombre As String
GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
'Referencia al documento activo
sRutaURL = ThisComponent.getURL()
'Convertimos la ruta URL en formato local
sRutaCompleta = ConvertFromUrl( sRutaURL )
'Obtenemos solo el nombre del archivo
sNombre = FileNameOutOfPath( sRutaURL )
'Obtenemos el directorio donde esta el archivo
sRuta = DirectoryNameoutofPath(sRutaCompleta, GetPathSeparator())
'Mostramos los resultados
MsgBox sRutaCompleta & Chr(13) & Chr(13) & sNombre & Chr(13) & Chr(13) & sRuta
End Sub
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Hola, aqui una opción para obtener solamente la ruta del archivo actual
=IZQUIERDA(CELDA("filename"),HALLAR("*",SUSTITUIR(CELDA("filename"),"/","/*",LARGO(CELDA("filename"))-LARGO(SUSTITUIR(CELDA("filename"),"/",""))),1)-1)
Debido a la configuracion regional de cada pais tal vez debas cambiar las comas por punto y coma ;
Guarda primero en tu carpeta preferida este archivo ejemplo y despues abrelo
Saludos, Federico.
=IZQUIERDA(CELDA("filename"),HALLAR("*",SUSTITUIR(CELDA("filename"),"/","/*",LARGO(CELDA("filename"))-LARGO(SUSTITUIR(CELDA("filename"),"/",""))),1)-1)
Debido a la configuracion regional de cada pais tal vez debas cambiar las comas por punto y coma ;
Guarda primero en tu carpeta preferida este archivo ejemplo y despues abrelo
Saludos, Federico.
- Adjuntos
-
- RutaArchivo.ods
- Ruta Archivo
- (8.73 KiB) Descargado 696 veces
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Hubiera jurado que con una función como esta
tendría que funcionar. Pero no es así del todo. Al abrir el archivo dá errores de valor inadmisible que postearé en la sección de macros**.
Una vez abierto el archivo y refrescar con Ctrl+Shift+F9 todo se ve funcionar bien.
La función devuelve /la/ruta en GNU/Linux, por contra en MSWindows lo hace con "barra invertida" \ruta\windows. La fórmula con CELDA("filename") devuelve "/" en ambos sistemas mientras que stewie parece usar "\" en su fórmula.
**Iba a abrir un hilo pero ya había uno http://user.services.openoffice.org/es/ ... f=4&t=2491
Editado:
Re-subo archivo con las mejoras aportadas por FORNELASA que eliminan los inconvenientes mencionados.
Código: Seleccionar todo
Public Function NombreRuta(Optional TipoRuta As Integer) As String
'Devuelve la ruta completa del docum. activo o
' Nombre del archivo si TipoRuta=1 o el Directorio si TipoRuta=2
Dim sRutaURL As String
Dim sRutaCompleta As String
Dim sRuta As String
Dim sNombre As String
'Valores para TipoRuta Archivo, Completa, Directorio
If IsMissing(TipoRuta) Then TipoRuta=0 'Si no se pone nada Devuelve ruta completa
GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
'Referencia al documento activo
sRutaURL = ThisComponent.getURL()
'Convertimos la ruta URL en formato local
sRutaCompleta = ConvertFromUrl( sRutaURL )
'Obtenemos solo el nombre del archivo
sNombre = FileNameOutOfPath( sRutaURL )
'Obtenemos el directorio donde esta el archivo
sRuta = DirectoryNameoutofPath(sRutaCompleta, GetPathSeparator())
'Mostramos los resultados
Select case TipoRuta
Case 1: NombreRuta=sNombre 'opción 1 Nombre del archivo
Case 2: NombreRuta=sRuta '2 para obtener el Directorio
Case 10: NombreRuta=sRutaURL ' 10 ruta en formato "crudo" url
Case Else: NombreRuta=sRutaCompleta
End Select
End Function
Una vez abierto el archivo y refrescar con Ctrl+Shift+F9 todo se ve funcionar bien.
La función devuelve /la/ruta en GNU/Linux, por contra en MSWindows lo hace con "barra invertida" \ruta\windows. La fórmula con CELDA("filename") devuelve "/" en ambos sistemas mientras que stewie parece usar "\" en su fórmula.
**Iba a abrir un hilo pero ya había uno http://user.services.openoffice.org/es/ ... f=4&t=2491
Editado:
Re-subo archivo con las mejoras aportadas por FORNELASA que eliminan los inconvenientes mencionados.
- Adjuntos
-
- RutaArchivo con %2B Funcion.ods
- Perfeccionado por FORNELASA
- (9.63 KiB) Descargado 364 veces
Última edición por xiseme el Vie Ene 20, 2012 12:31 pm, editado 1 vez en total.
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
=CELDA("FILENAME")
'file:///C:/Users/MARV/Downloads/FuncionNombreHoja_Fichero_Url.ods'#$Hoja1
=MID(cFilename;2;HALLAR("'#";cFilename)-2)
file:///C:/Users/MARV/Downloads/FuncionNombreHoja_Fichero_Url.ods
=MID(cFilename;2;HALLAR("/[^/]+'#";cFilename)-1)
file:///C:/Users/MARV/Downloads/
=MID(cFilename;ENCONTRAR("#$";cFilename)+2;LARGO(cFilename))
Hoja1
=MID(CELDA("filename");HALLAR("/[^/]+'#";CELDA("filename"))+1;HALLAR("'#";CELDA("filename"))-HALLAR("/[^/]+'#";CELDA("filename"))-1)
FuncionNombreHoja_Fichero_Url.ods
Con trucos interesantes para extraer partes de un texto.
No es de cosecha propia, aunque pueda tener algo, creo que hace tiempo lo preparé a partir de información obtenida en el foro en inglés.
De nuevo la versión correcta: (utilizaba un nombre de celda en las formula, sustituido por la formula)
"filename" no es traducible, la función CELDA() solo acepta el nombre de los parámetros en inglés.
=CELDA("filename")
'file:///C:/Users/MARV/Downloads/FuncionNombreHoja_Fichero_Url.ods'#$Hoja1
=MID(CELDA("filename");2;HALLAR("'#";CELDA("filename"))-2)
file:///C:/Users/MARV/Downloads/FuncionNombreHoja_Fichero_Url.ods
=MID(CELDA("filename");2;HALLAR("/[^/]+'#";CELDA("filename"))-1)
file:///C:/Users/MARV/Downloads/
=MID(=CELDA("filename");ENCONTRAR("#$";CELDA("filename"))+2;LARGO(CELDA("filename")))
Hoja1
=MID(CELDA("filename");HALLAR("/[^/]+'#";CELDA("filename"))+1;HALLAR("'#";CELDA("filename"))-HALLAR("/[^/]+'#";CELDA("filename"))-1)
FuncionNombreHoja_Fichero_Url.ods
Con trucos interesantes para extraer partes de un texto.
No es de cosecha propia, aunque pueda tener algo, creo que hace tiempo lo preparé a partir de información obtenida en el foro en inglés.
Última edición por mriosv el Dom Ene 22, 2012 12:36 am, editado 2 veces en total.
Puedes usar "Subir adjunto" en Respuesta rápida - Editor Completo - Pestaña Subir adjunto
Apache OpenOffice 4, LibreOffice (Win10x64)
Apache OpenOffice 4, LibreOffice (Win10x64)
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Muchas gracias,
ahora el problema que me encuentro es que aparece el símbolo ' justo antes de la cadena, y entonces el hyperlink hace cosas extrañas.
'file:///home/stewie/libreoffice/
¿Cómo podría eliminar el primer caracter de la cadena, o bien, el que coincida con '.
¡Muchas gracias!
ahora el problema que me encuentro es que aparece el símbolo ' justo antes de la cadena, y entonces el hyperlink hace cosas extrañas.
'file:///home/stewie/libreoffice/
¿Cómo podría eliminar el primer caracter de la cadena, o bien, el que coincida con '.
¡Muchas gracias!
OpenOffice 2.4 en Ubuntu 9.04
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Una forma es con DERECHA + LARGO
DERECHA("cadena",LARGO("cadena")-1) devuelve "adena"
Peeeeero ... un momento .... (editado) : ... las fórmulas de mriosv y las macros devuelven ya sin el apostrofe '
Con permiso
@ mriosv
En tu adjunto cFilename es equivalente a CELDA("filename"). En tu hoja funciona si lo copio a una mía no.
DERECHA("cadena",LARGO("cadena")-1) devuelve "adena"
Peeeeero ... un momento .... (editado) : ... las fórmulas de mriosv y las macros devuelven ya sin el apostrofe '
Con permiso
@ mriosv
En tu adjunto cFilename es equivalente a CELDA("filename"). En tu hoja funciona si lo copio a una mía no.
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Muchas gracias,
¿no podría sustituir cell("filename") dentro de la fórmula? Es para que todo esté en una celda.
¡Gracias!
¿no podría sustituir cell("filename") dentro de la fórmula? Es para que todo esté en una celda.
¡Gracias!
OpenOffice 2.4 en Ubuntu 9.04
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Si te refieres a eso, las fórmulas de mriosv funcionan perfecto (en mi caso necesariamente) sustituyendo cFilename por CELL("filename")
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Gracias,xiseme escribió:Si te refieres a eso, las fórmulas de mriosv funcionan perfecto (en mi caso necesariamente) sustituyendo cFilename por CELL("filename")
a mi me funcionan en el documento adjunto de mriosv, pero en uno nuevo creado por mi me aparece un error: #VALUE!
un saludo!
OpenOffice 2.4 en Ubuntu 9.04
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
¿Así tampoco? MID(CELL("filename");2;HALLAR("/[^/]+'#";CELL("filename"))-1)
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Gracias, lamento la torpeza.xiseme escribió:¿Así tampoco? MID(CELL("filename");2;HALLAR("/[^/]+'#";CELL("filename"))-1)
He creado un documento nuevo, he pinchado en una casilla y he escrito:
=MID(CELL("filename");2;HALLAR("/[^/]+'#";CELL("filename"))-1)
y ahora aparece el error: #name?
:-/
Gracias!
OpenOffice 2.4 en Ubuntu 9.04
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Hola, en la manera que introdujisté la formula (forma manual) combinaste nombres de funciones en español e ingles, HALLAR y CELL (CELDA), obviamente debemos usar las funciones o en Ingles totas o en Español todas dependiendo de la version que tengamos, no se puede "campechanear" (combinar).
En el ejemplo que yo subí puedes quitar el ' haciendo la formula mas larga,
=DERECHA(IZQUIERDA(CELDA("filename"),HALLAR("*",SUSTITUIR(CELDA("filename"),"/","/*",LARGO(CELDA("filename"))-LARGO(SUSTITUIR(CELDA("filename"),"/",""))),1)-1),(LARGO(IZQUIERDA(CELDA("filename"),HALLAR("*",SUSTITUIR(CELDA("filename"),"/","/*",LARGO(CELDA("filename"))-LARGO(SUSTITUIR(CELDA("filename"),"/",""))),1)-1))-1))
Guarda este archivo ejemplo en tu carpeta favorita y despues abrelo.
La formula mas sencilla de acuerdo a lo que solicitas es la de mriosv, o sea esta: =MID(cfilename,2,HALLAR("/[^/]+'#",cfilename)-1)
tambien he incorporado un ejemplo de esta formula.
Seguramente a ti no te funciona porque en tu archivo no le has dado nombre a la formula, nota por favor como en el ejemplo que te anexo hemos asignado el nombre cfilename a la funcion celda("filename") en el menu Insertar Nombres Definir
Saludos, Federico.
En el ejemplo que yo subí puedes quitar el ' haciendo la formula mas larga,
=DERECHA(IZQUIERDA(CELDA("filename"),HALLAR("*",SUSTITUIR(CELDA("filename"),"/","/*",LARGO(CELDA("filename"))-LARGO(SUSTITUIR(CELDA("filename"),"/",""))),1)-1),(LARGO(IZQUIERDA(CELDA("filename"),HALLAR("*",SUSTITUIR(CELDA("filename"),"/","/*",LARGO(CELDA("filename"))-LARGO(SUSTITUIR(CELDA("filename"),"/",""))),1)-1))-1))
Guarda este archivo ejemplo en tu carpeta favorita y despues abrelo.
La formula mas sencilla de acuerdo a lo que solicitas es la de mriosv, o sea esta: =MID(cfilename,2,HALLAR("/[^/]+'#",cfilename)-1)
tambien he incorporado un ejemplo de esta formula.
Seguramente a ti no te funciona porque en tu archivo no le has dado nombre a la formula, nota por favor como en el ejemplo que te anexo hemos asignado el nombre cfilename a la funcion celda("filename") en el menu Insertar Nombres Definir
Saludos, Federico.
- Adjuntos
-
- RutaArchivo.ods
- Ruta Archivo sin '
- (8.26 KiB) Descargado 369 veces
Última edición por fornelasa el Vie Ene 20, 2012 5:45 pm, editado 1 vez en total.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
=MID(CELDA("filename");2;HALLAR("'#";CELDA("filename"))-2) (como MID es inglés y se menciona CELL...)
En un archivo "nuevo" no muestra nada hasta que se guarde, momento en el que ya tendrá nombre y ubicación.
En un archivo "nuevo" no muestra nada hasta que se guarde, momento en el que ya tendrá nombre y ubicación.
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Hola stewie, ¿te fueron utiles las sugerencias?
Saludos, Federico.
Saludos, Federico.
lo 6.2.0 | aoo 4.1.6 | win 7/10
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
¡Un aplauso para todos los que luchan por proteger y promover la Web abierta!
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Perdón por tardar en responder, pero vino el fin de semana y se me fue la cabeza.
En primer lugar agradecer a toda la comunidad lo volcada que está en el foro. Hice las pruebas, las re-hice y al final conseguí que me funcionase bien en una hoja "nueva".
El problema que me sigue sin funcionar en una hoja importada xls (de excel)... la hoja está importada, rellena, guardada en local y "todo" lo necesario, pero va la función. He probado a cerrar y volver a abrir, a mantener la el formato xls... No se de qué puede ser.
Seguiré probando.
Muchas gracias, un saludo.
PD: Sois geniales
En primer lugar agradecer a toda la comunidad lo volcada que está en el foro. Hice las pruebas, las re-hice y al final conseguí que me funcionase bien en una hoja "nueva".
El problema que me sigue sin funcionar en una hoja importada xls (de excel)... la hoja está importada, rellena, guardada en local y "todo" lo necesario, pero va la función. He probado a cerrar y volver a abrir, a mantener la el formato xls... No se de qué puede ser.
Seguiré probando.
Muchas gracias, un saludo.
PD: Sois geniales
OpenOffice 2.4 en Ubuntu 9.04
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Entiendo que
-Usas la fórmula
-La fórmula funciona
-No lo hace en un xls ....
Acotemos: ¿en ningún xls o sólo en ese en concreto?
-Usas la fórmula
-La fórmula funciona
-No lo hace en un xls ....
Acotemos: ¿en ningún xls o sólo en ese en concreto?
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Re: Foŕmula para obtener la ruta (path)sin el nombre de fich
Hola,xiseme escribió:Entiendo que
-Usas la fórmula
-La fórmula funciona
-No lo hace en un xls ....
Acotemos: ¿en ningún xls o sólo en ese en concreto?
uso la misma fórmula «copiar y pegar» del ods de prueba donde sí funciona al xls.
Tengo que realizar la prueba sobre otro xls. Es el único del que dispongo, probaré creando uno desde openoffice calc, que supongo que funcionará, y pediré que me faciliten otro xls para acotar el problema.
Muchas gracias, un saludo!
OpenOffice 2.4 en Ubuntu 9.04