Dudas con la definición de rutas

4 envíos / 0 nuevos
Último envío
J_Javier
Imagen de J_Javier
Offline
última acción: Hace 6 años 8 meses
alta: 17/07/2017 - 08:13
Puntos: 70
Dudas con la definición de rutas

Hola a tod@s otra vez. Sigo aprendiendo excel y me encuentro sorpresas. Me explico:

Estoy abriendo un libro (Resumen.xlsm) en la carpeta: C:\Pruebas

Cuando pongo en una celda INFO("directorio") me muestra: C:Users\Javier\Documents

¿por qué? Mi pensamiento (o lo que yo necesito) es que tendría que aparecer: C:\Pruebas

Cuando pongo en una celda CELDA("nombrearchivo") me muestra: C:\Pruebas\[Resumen.xlsm] de aquí si podría extraer el directorio que necesito.

 

Siguiendo con este libro, en él obtengo información de otros tres libros que están en la misma carpeta. Para ver la información asociada tengo que abrir antes los otros tres libros, si nó, me da error #¡REF!. en las celdas que hacen referencia a los otros libros.

Otro ¿por qué?

Gracias por vuestro tiempo.

Cron
Imagen de Cron
Offline
última acción: Hace 7 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Si lo que quieres es obtener

Si lo que quieres es obtener la ruta del archivo que tienes abierto, lo que hay que hacer es obtenerlo de CELDA("nombrearchivo"). Para ello, utiliza la función IZQUIERDA y COINCIDIR así:

=IZQUIERDA(CELDA("nombrearchivo");ENCONTRAR("[";CELDA("nombrearchivo"))-1)

Lo que hace esta fórmula es encontrar la primera aparición del corchete de apertura, y se queda con los caracteres que están a su izquierda.

¿Por qué INFO("directorio") no te da ese resultado?

Pues porque lo que te devuelve es otra cosa. No es el directorio del archivo, sino lo que se llama "directorio activo". Esto es, el directorio al que vas directamente si abres un diálogo de abrir/guardar archivo. Al abrir Excel, este directorio es la carpeta "Documentos" del usuario actual. Si te has movido por alguna ventana de abrir o guardar archivos (por ejemplo, en una macro en la que debas seleccionar algún archivo), el directorio activo será el último visitado, si el diálogo lo has cerrado con una acción positiva (abrir, Sí, guardar...), es decir, si no has cancelado. Es un poco lioso, pero es que es muy específico.

 

En cuanto al tema del error #REF!, ¿has probado a actualizar los vínculos? En teoría, al abrir el archivo, te pedirá permiso para actualizar vínculos externos. Si le dices que sí debería actualizarlos. Pero puedes forzarlo con una función que está en la pestaña DATOS, en el grupo CONEXIONES, que se llama ACTUALIZAR TODO.

 

Un saludo

J_Javier
Imagen de J_Javier
Offline
última acción: Hace 6 años 8 meses
alta: 17/07/2017 - 08:13
Puntos: 70
Dudas con la definición de rutas

Hola de nuevo a tod@s. Gracias, Cron, por tus comentarios. Subo unas fotos para explicar que es lo que sucede.

Las fotos ArticuloBien y ArticuloMal están hechas teniendo abiertos los libros de donde se obtiene la información.

En ArticuloBien (Hoja Ar251), el código del articulo (C2) está bien extraido del nombre de la hoja y la descripción del producto y los totales de compra son correctos. (La fórmula está arriba)

En ArticuloMal (Hoja Ar252), el código del articulo (C2) no es el correcto. En todas las pruebas que he hecho, todas las hojas toman el código de la hoja que está activa al cargar el libro. ¿? Por lo tanto, la información que se muestra no és la correcta.

En ArticuloNoCarga, vemos el resultado de abrir el libro, sin tener abiertos los libros de donde se obtiene la información.

No trabajo con conexiones y consultas. Como se puede ver en las formulas, trabajo con referencias a hojas dentro de los libros.

ruta1 = C:\Carpeta\[Libro]Hoja'!Rango

Creo que para la información que busco, trabajo mejor con estas referencias. Adjunto tambien fichero con el ejemplo de las rutas que uso

Gracias por vuestra ayuda.

 

 

AdjuntoTamaño
File Rutas9.52 KB
Image icon ArticuloBien823.34 KB
Image icon ArticuloMal795.37 KB
Image icon ArticuloNoCarga792.49 KB
Cron
Imagen de Cron
Offline
última acción: Hace 7 meses 3 semanas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Bien, creo que ya sé lo que

Bien, creo que ya sé lo que te ocurre.

La función INDIRECTO necesita que el otro libro esté abierto. Si no lo está, no funciona correctamente. Existen por internet add-ons o add-ins o como se llamen que implementan una función INDIRECTO que sí funciona con libros cerrados. Básicamente lo que hacen es abrir el otro archivo, recuperar el dato y volverlo a cerrar, todo esto de manera transparente para el usuario. Al estar programadas en C++ o en C#, son bastante rápidas. Aun así, son más lentas que INDIRECTO, pero a cambio sí funcionan con el otro libro cerrado.

Además de la opción que utilizas en "ArticuloBien", si no tienes más remedio que utilizar INDIRECTO, puedes programar una macro que se ejecute al abrir el archivo y que abra en segundo plano (en modo lectura y sin visualización) el archivo fuente. Recuerda programar otra macro que al cerrar tu archivo, cierre también el archivo fuente. 

No sé qué pasará si, teniéndolo abierto como solo lectura, lo quieres abrir para editarlo a la vez. Por las pruebas que he hecho, parece que el que ya tienes abierto pasa a primer plano y en modo edición. Pero podría ser que te dé un error de archivo abierto, o que no te deje en absoluto. También puede depender de la versión de Office que tengas instalada. Todo esto entra dentro del campo del juego.

Espero que te haya servido la explicación.

 

Un saludo