online - programas de excel
Cuál es la mejor manera de empaquetar y distribuir una aplicación de Excel (5)
Puede modificar el archivo personal.xls del usuario, almacenado en el directorio de inicio de Excel (varía entre las versiones de Office). Sin embargo, si tienes muchos usuarios, eso puede ser complicado.
Una forma alternativa de superar su problema es almacenar la macro en un archivo de plantilla (.xlt). Luego, cuando los usuarios lo abren, no pueden guardarlo sobre el archivo original, pero tienen que especificar un nuevo nombre de archivo para guardarlo. La desventaja de este método es que usted obtiene múltiples copias de su código original en cualquier lugar con cada archivo guardado. Si modifica el .xlt original y alguien vuelve a ejecutar la macro anterior en un archivo .xls previamente guardado, las cosas pueden salir de paso.
He escrito una herramienta de informes de bases de datos basada en Excel. Currente, todo el código VBA está asociado con un solo archivo XLS. El usuario genera el informe haciendo clic en un botón en la barra de herramientas. Desafortunadamente, a menos que el usuario haya guardado el archivo con otro nombre de archivo, todos los datos informados se borran.
Cuando he creado herramientas similares en Word, puedo poner todo el código en un archivo de plantilla (.dot) y llamarlo desde allí. Si pongo el archivo de plantilla en la carpeta de inicio de Office, se ejecutará cada vez que inicie Word. ¿Hay alguna manera similar de empaquetar y distribuir mi código en Excel? Intenté usar Complementos, pero no encontré la forma de llamar el código desde la ventana de la aplicación.
Simplemente mueva su código a un Complemento de Excel (XLA): se carga al inicio (suponiendo que esté en la carpeta% AppData% / Microsoft / Excel / XLSTART) pero si es un complemento, no un libro, solo sus macros y inicio definido las funciones se cargarán
Si las funciones dependen de una hoja de cálculo en sí misma, es posible que desee utilizar una combinación de plantillas y complementos.
Estoy distribuyendo parte de una aplicación como esta, tenemos complementos para Word, Excel y Powerpoint (XLA, PPA, DOT) y también versiones de Office 2007 ''ribbon'' (DOTM, XLAM y PPAM)
El código de inicio de complemento crea botones de la barra de herramientas si no se encuentran, esto significa que en cualquier libro / documento / etc. simplemente pueden presionar el botón de la barra de herramientas para ejecutar nuestro código (tenemos dos botones de acción y uno que muestra un cuadro de diálogo de configuración)
Las plantillas no son realmente el camino a seguir para el código VBA, los complementos definitivamente son el camino a seguir ...
Entonces, para cargar las barras de herramientas al inicio estamos usando algo como ... (verificando si la barra de herramientas existe, el código se ejecutará para cada hoja de trabajo que se abra, pero las barras de herramientas son persistentes para la sesión del usuario)
Public Sub Workbook_Open()
'' startup code / add toolbar / load saved settings, etc.
End Sub
Espero que ayude :)
¿Has investigado en ClickOnce implementando el archivo de Excel?
Siempre uso una combinación de Complemento (xla) / Plantilla (xlt). Su complemento crea el menú (u otros puntos de entrada de UI) y carga plantillas según sea necesario. También escribe los datos que desea conservar en una base de datos (Access, SQLServer, archivo de texto o incluso un archivo xls).
La primera regla es mantener su código separado de sus datos. Luego, si luego tiene correcciones de errores u otros cambios de código, puede enviar un nuevo complemento y todas sus plantillas y bases de datos no se verán afectadas.
¿Qué tal guardar una carpeta excel en la red con permisos de solo lectura? La autenticación se puede realizar con la autenticación de Windows integrada y no es necesario almacenar la contraseña de conexión en la base de datos en el VBA. Entonces solo necesita distribuir un enlace a esta ubicación a sus usuarios solo una vez. Si va a hacer una actualización, solo cambia los datos en esa carpeta sin aviso del usuario.