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_los. Bueno, ¡eso es porque no puede! Este artículo explica cómo puede 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 VBA que depende de una función personalizada contenida en otro libro de trabajo, ese otro libro de trabajo deberá 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 como …​

¿Cuándo surge el problema?

Estoy escribiendo un procedimiento para uno de mis libros de trabajo. En mi procedimiento, quiero usar la función RemoveSpaces que creé hace un tiempo y guardé en mi complemento Martin’s Functions, que actualmente está instalado 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 dentro del módulo de código de un libro de trabajo diferente.

Asigne a su complemento un nombre de proyecto VBA Cada libro de trabajo tiene un nombre de proyecto VBA. Se llama VBAProject. 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 que se muestran en el panel Project Explorer del editor visual básico se llaman «VBAProject»? Si tiene alguno de los complementos de Microsoft instalado, verá que tienen un nombre diferente. Los desarrolladores de Microsoft le han dado a su Analysis ToolPak Add-In el nombre del proyecto 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 panel Project Explorer seleccione el nombre de su complemento. Si aún no está abierto, muestre la Ventana de propiedades del Editor de Visual Basic. Verá que solo hay una propiedad, el Name. Escriba otro nombre y presione Entrar. 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 Project Explorer.

Ahora guarda los cambios en tu complemento. Asegúrese de que su complemento esté seleccionado en Project Explorer y elija Archivo> Guardar.

Establecer una referencia al complemento En este paso, le indica al libro de trabajo en el que desea utilizar las funciones del complemento que existe el complemento. Para ello, Configure una referencia para el complemento. Es posible que haya encontrado esta técnica antes si ha querido escribir código de Excel para comunicarse con otro programa como Outlook o Access.

Si es conveniente, reinicie Excel en este punto. 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, luego vaya a Herramientas> Referencias para abrir el cuadro de diálogo Referencias 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 botón Aceptar.

Si no reinició Excel, tendrá que buscar su archivo de complemento haciendo clic en el botón Examinar en el cuadro de diálogo Referencias. Esto abre la ventana Agregar referencia. Cambie la sección Archivos de tipo: _Archivos de Microsoft Excel (.xls; .xla) _ luego busque la carpeta donde está almacenado el complemento.

Seleccione su complemento y haga clic en Abrir. Esto agrega su complemento a la lista donde puede seleccionarlo y hacer clic en Aceptar.

NOTA: ¡No tiene que realizar ambos procedimientos! Elija uno u otro dependiendo de si reinició Excel o no después de cambiar el nombre del proyecto VBA de su complemento.

Ahora podrá usar las funciones del complemento en cualquier módulo del libro de trabajo en el que establezca la referencia y serán reconocidas por el Editor de Visual Basic …​

Si observa el Project Explorer 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 realizó 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 enlace 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 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.