Hojas de cálculo en Excel - página principal

Obtener la ruta, el nombre del fichero y el de la hoja activa

Seguimos explotando las posibilidades de la función Celda.

En este caso queremos obtener la ruta donde tenemos guardado el libro de excel en nuestro ordenador, el nombre del fichero en cuestión, y el nombre de la hoja con la que estamos trabajando.

Para mostrar todos esos datos, es necesario tener el fichero de excel previamente guardado en el disco duro (quien dice disco duro, dice llave USB, o cualquier otro dispositivo de almacenamiento). Tan solo tendremos que poner esta fórmula en la celda donde queramos mostrar esos datos, de forma literal (no cambies eso de nombrearchivo):


=CELDA("nombrearchivo";A1)


Bien sencillo, ¿verdad?.



16 comentarios:

Félix dijo...

Hola buenas amigo, muchas gracias por la formula, me a servido, solo debo decirte que me funciono asi:

=CELDA("nombrearchivo",A1)

con (,) en lugar de (;), saludos.

Javier Marco dijo...

Así es. Dependiendo de la configuración regional del sistema, el punto y coma hay que sustituirlo por coma. Desde Inicio --> Panel de Control --> Configuración regional (en vista clásica) --> En la pestaña Opciones regionales, pulsando el botón "Personalizar", la penúltima opción "Separador de listas" es la que indicará si debemos utilizar punto y coma o coma en Excel.

Fredi dijo...

Hola Javier te agradezco infinitamente por compartir tus conocimientos, viendo este tema, yo quiero listar en una hoja de excel, el nombre de todos los libros abiertos, cómo le hago? saludos y gracias

Anxo_a dijo...

Hola, me estoy volviendo loco para poder capturar la ruta desde donde se abre una plantilla excel, tanto esta fórmula como la propiedad .path no me lo devuelven ¿hay alguna forma de hacerlo?

gracias

Javier Marco dijo...

Si utilizas este macro dentro del propio libro del cual buscas su ruta, te mostrará un mensaje con la información deseada:

Sub ruta()
'mostramos un mensaje con la ruta
MsgBox (ActiveWorkbook.Path)
End Sub

Pablo dijo...

Gracias por tu contribución me es degran utilidad. Yo he utilizado la siguiente formula

=INFO("directorio")

El problema que tengo es que si el libro que la tiene es arrastrado a una carpeta no se actualiza, tengo que volver a "guardar como para que se actualice. ¿Conocéis alguna forma de evitar este pado?

Javier Marco dijo...

Creo que no vas a poder hacer eso con la función INFO, porque para conseguir lo que quieres, la función INFO debería estar chequeando constántemente la ruta (como un "calcular ahora", al pulsar F9).

Podrías utilizar la función path, desde un macro, y que este se ejecutase cada X tiempo, aunque igual es peor el remedio que la enfermedad (por los recursos que consume tener que ejecutar el macro cada cierto tiempo, y demás).

Un saludo.

Alexsc dijo...

Hola Javier:

Recurro a tu grandiosa experiencia para que me ayudes a solucionar el siguiente error:

Estoy construyendo una macro la cual inicia haciendo la apertura de un archivo de excel a traves de un cuadro de dialogo así:

Sub AbrirLibro()
Workbooks.Open Filename:=Application.GetOpenFilename("Hoja Excel , *.xls*", , "Seleccione el archivo que desea abrir...")
End Sub

Esta rutina funciona perfectamente y me permite buscar el archivo requerido y abrirlo, pero resulta que si doy click en el boton Cancelar de la ventana windows para abrir el archivo, me aparece el siguiente error en tiempo de ejecución:

Se ha producido el error '1004' en tiempo de ejecucion:

No se encontro "Falso.xls". Compruebe la ortografia del nombre del archivo y si su ubicacion es correcta.

Podria decirme como puedo controlar este error??? es decir, que si hago click en Cancelar que no haga nada??

Te agradezco muchisimo tu enorme colaboración

Javier Marco dijo...

Lo más sencillo es que omitas los errores. Para ello, pon simplemente esta línea al principio del procedimiento:

On Error resume Next

Con esa línea estamos diciendo algo como esto: si encuentras errores, omítelos y continúa ejecutando el resto del código.

Saludos.

Alexsc dijo...

ufffff, muchisimas gracias Javier. Funcionó de maravilla

Alexsc dijo...

Hola Javier:

Quisiera pedirte que me indicaras como capturo en una variable el nombre del archivo que aperturo por el cuadro de dialogo de windows o volverlo libro activo para posicionarme en A8

Javier Marco dijo...

Se supone que cuando abre un fichero, se convierte en libro activo:

MsgBox (ActiveWorkbook.Name)

Saludos.

Anónimo dijo...

Buenas tardes Javier,

En primer lugar, ¡¡muchas felicidades por tu sitio!!

Desearía que me indicaras si es posible crear una ruta de carpetas en c:/ desde Excel con nombres de celdas de Excel.

Me explico: si en A1 tengo "Japón", en A2 tengo "Tokio" y en A3 tengo "Consulta", lo que pretendo es que dándole a un botón me cree la ruta de carpetas: C:/Japón/Tokio/Consulta

Muchas gracias por anticipado.

Saludos,

David.

Javier Marco dijo...

Pásate por este artículo: crear carpetas desde Excel.

Tan solo deberás adaptar el macro a tus necesidades.

Saludos.

Flavio dijo...

que tal Javier muy interesante e importantes la información que brindas, por favor quería preguntar como puedo hacer para enviar cierta información de la hoja datos a otra hoja ( de muchas que tengo, 1,2,3,...),no me reconoce el hoja(rango(v1). hoja donde busca la hoja(rango) a donde necesito enviar el dato, rango(rango(d2)... me dice el mensaje q no encuentra el rango o a donde lo va a enviar. gracias

Javier Marco dijo...

Suponiendo que tu hoja se llame DATOS, prueba esto:

Sheets("DATOS").Select
Range("A1").Select