Si ha creado un complemento para contener sus funciones personalizadas de Excel, es posible que haya descubierto que, aunque las funciones funcionan bien en una hoja de cálculo de Excel, no puede usarlas en sus procedimientos de VBA en otros libros de trabajo. Es como si el Editor de Visual Basic no pudiera ver ellos. Bueno, ¡eso es porque no puede! Este artículo explica cómo solucionarlo.
En primer lugar, considere si esto es realmente lo que quiere hacer. Los complementos están destinados principalmente a agregar funcionalidad adicional a sus libros de trabajo. Cuando carga un complemento de Excel, su funcionalidad está inmediatamente disponible para todos sus libros de trabajo. Si crea un procedimiento de VBA que depende de una función personalizada contenida en otro libro de trabajo, ese otro libro de trabajo debería estar abierto siempre que desee utilizar su función. Lo mismo ocurre con una función personalizada en un complemento. Si el complemento está cargado, está bien, pero suponiendo que envíe su libro de trabajo a otra persona o lo distribuya a su grupo de trabajo. También debes recordar distribuir el complemento. Podría ser más sencillo incluir una copia de la función en el código del libro de trabajo para que sus procedimientos tengan acceso directo a ella (es posible que deba convertirla en una Función privada o cambiar su nombre para evitar conflictos de nombres).
No estoy diciendo que no lo hagas. Solo debe pensar en ello primero y, si está seguro de que el complemento estará disponible, continúe. Así es cómo…
¿Cuándo surge el problema?
Estoy escribiendo un procedimiento para uno de mis libros de trabajo. En mi procedimiento quiero usar el Eliminar espacios función que creé hace un tiempo y guardé en mi Funciones de Martin Complemento que está instalado actualmente en mi copia de Excel. Pero cuando intento ejecutar mi procedimiento, aparece un error.
El Editor de Visual Basic se comporta como si la función no existiera, pero sé que sí y puedo verlo si miro el código dentro de mi complemento. De hecho, el código funciona bien si lo ejecuto desde dentro de mi complemento.
Necesito el Editor de Visual Basic para poder ver las funciones en mi complemento desde el interior del módulo de código de un diferente libro de trabajo.
Dale a tu complemento un nombre de proyecto de VBA
Cada libro tiene un Nombre del proyecto de VBA. Se llama Proyecto VBA. Puedes cambiar ese nombre si quieres pero normalmente no me molesto, porque normalmente no importa.
¿Alguna vez se preguntó por qué todos los libros de trabajo mostrados en el Explorador de proyectos panel del editor visual básico se llaman "Proyecto VBA"? Si tiene alguno de los complementos de Microsoft instalado, verá que tienen un nombre diferente. Los desarrolladores de Microsoft han dado su Paquete de herramientas de análisis Complemento del nombre del proyecto de VBA "funcres".
Lo primero que debe hacer es darle a su complemento un nombre de proyecto VBA único. Esto se debe a que lo llamará por este nombre en el siguiente paso y si hay más de uno con el mismo nombre, el Editor de Visual Basic no sabrá cuál usar.
En el Explorador de proyectos panel seleccione el nombre de su complemento. Si aún no está abierto, muestre el editor de Visual Basic Ventana Propiedades. Verás que solo hay una propiedad, la Nombre. Escriba otro nombre y presione Ingresar. Tendrá que obedecer las reglas de nomenclatura habituales para VBA (es decir, sin caracteres ilegales ni espacios). Verá que el nombre se aplica inmediatamente en el Explorador de proyectos.
Ahora guarda los cambios en tu complemento. Asegúrese de que su complemento esté seleccionado en el Explorador de proyectos y elige Archivo> Guardar.
Establecer una referencia al complemento
En este paso, le indica al libro de trabajo en el que desea utilizar las funciones de su complemento que el complemento existe. Haces esto por Establecer una referencia al complemento. Es posible que haya encontrado esta técnica antes si ha querido escribir código de Excel para comunicarse con otro programa como panorama o Acceso.
Si es conveniente, reinicie Excel en este momento. Esto se debe a que su complemento renombrado se volverá a cargar y la lista que está a punto de ver se actualizará. Si no es conveniente, no se moleste … lea el siguiente párrafo y decida lo que quiere hacer.
Abra un módulo de código en el libro de trabajo en el que desea utilizar las funciones del complemento y luego vaya a Herramientas> Referencias para abrir el Referencias diálogo donde verá una lista de todas las bibliotecas y otros objetos (como complementos) a los que puede establecer una referencia. Si ha reiniciado Excel, esta lista se habrá actualizado y podrá encontrar el nombre del proyecto que le dio a su complemento en el último paso. Marque la casilla junto al nombre y haga clic en el OK botón.
Si no reinició Excel, tendrá que buscar su archivo de complemento haciendo clic en el Navegar botón en el Referencias diálogo. Esto abre el Añadir referencia ventana. Cambiar el Los archivos de tipo: sección a Archivos de Microsoft Excel (*. Xls; *. Xla) luego busque la carpeta donde está almacenado el complemento.
Seleccione su complemento y haga clic en Abierto. Esto agrega su complemento a la lista donde puede seleccionarlo y hacer clic en OK.
NOTA: ¡No es necesario que realice ambos procedimientos! Elija uno u otro dependiendo de si reinició o no Excel después de cambiar el nombre del proyecto VBA de su complemento.
Ahora podrá utilizar las funciones del complemento en cualquier módulo del libro en el que establezca la referencia y serán reconocidas por el Editor de Visual Basic …
Si miras el Explorador de proyectos verá que se ha aplicado una referencia al libro de trabajo …
Es importante recordar que agregar una referencia solo se aplica al libro de trabajo para el que llevó a cabo este procedimiento. Tendrá que hacerlo para cada libro de trabajo diferente en el que desee utilizar las funciones de su complemento.
Acerca de la distribución de sus archivos
Cuando agrega una referencia a un complemento, este vínculo al complemento está "cableado" en el archivo. Si mueve el archivo a otra computadora o se lo distribuye a sus compañeros de trabajo, el libro de trabajo esperará encontrar el mismo complemento, en el mismo lugar, en sus computadoras. Además, si el complemento se mueve o se elimina de la computadora, el libro de trabajo no podrá encontrarlo y su código no funcionará.
Algunas personas abogan por que el archivo y su complemento asociado siempre deben estar ubicados en la misma carpeta para evitar los problemas que esto podría causar. Por supuesto, puede volver a establecer la referencia para solucionar el problema.
Ten en cuenta estos factores y no tendrás problemas.