Macro: al abrir libro que se abra otro si no está ya abierto.
El tema es el siguiente: Tengo un libro llamado Control en el que se ejecuta un BUSCARV en una matriz de otro libro ( =SI.ERROR(BUSCARV([@[Núm.]];CLIENTS;F$2);"") ) donde CLIENTS es un nombre que hace referencia a ( ='00 - CLIENTS.xlsm'!Tabla1[#Datos] ); pero con esta función para que se actualicen los datos de forma inmmediata tengo te tener los dos libros abiertos...
He probado la otra opción de sustituir CLIENTS por la ruta i el rango de la tabla ('C:\Users\Fede\Desktop\00 - GESTIO CLIENTS\[00 - CLIENTS.xlsm]CLIENTS'!$B$6:$BH$5006) y en esta ocasión los datos se actualizan immediatamente sin necesidad de que estén abiertos los 2 libros.
El problema de esta opción es que cuando quiero cambiar los archivos de carpetas, tengo que cambiar todas las formulas con la nueva ruta, mientas que en la primera opción, con solo cambiar la ruta del nombre de la matriz soluciona el problema.
Entonces, para que se abra el libro 00 - CLIENTS. Xlsm automaticamente al abrir el libro Control he añadido esta macro en Workbook_open:
Private Sub Workbook_Open()
Set ARCHIVO = CreateObject("Scripting.FilesystemObject")
NOMBRE_ARCHIVO = Sheets("Conf.").Range("E8")
If ARCHIVO.FILEEXISTS(NOMBRE_ARCHIVO) Then
Workbooks.Open NOMBRE_ARCHIVO
End If
ThisWorkbook.Activate
End Sub
Y lo que quisiera es que si ese libro ya se encontrara abierto, directamente que ignorara este procedimiento. ¿Cuál sería la instrucción que debiera utilizar?
Por otro lado, existe alguna forma de disponer de forma permanente los datos del libro 00 - CLIENTS. ¿xlsm en otros libros de forma que aunque se cambien de carpeta (incluso de PC) sigan existiendo los vinculos creados entre ellos?