Pregunta

He escrito una basada en Excel, base de datos de la herramienta de informes.Currentely, todos del código de VBA se asocia con un único 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 notificados obtiene exterminados.

Cuando he creado herramientas similares en Word, puedo poner todo el código en una plantilla (.dot) archivo y llamar desde allí.Si pongo el archivo de plantilla en la carpeta de inicio de Office, se pondrá en marcha cada vez que inicie Word.Es allí una manera similar, empaquetar y distribuir mi código en Excel?He intentado usar los complementos, pero no he encontrado una forma de llamar el código de la ventana de la aplicación.

¿Fue útil?

Solución

Usted puede modificar el usuario personal.xls archivo almacenado en el excel directorio de inicio (varía entre versiones de Office).Si usted tiene un montón de usuarios, sin embargo, que puede ser engorroso.

Una forma alternativa de obtener más de su problema es almacenar la macro en una plantilla (.xlt) archivo.A continuación, cuando el usuario abre es que no se puede guardar de nuevo sobre el archivo original, pero tiene que especificar un nuevo nombre de archivo para guardar como.La desventaja de este método es que, a continuación, obtener varias copias de su código original por todo el lugar con cada archivo guardado.Si usted modificar el original .xlt y alguien vuelve a ejecutar el antiguo macro en un guardados previamente .archivo xls, entonces las cosas pueden salir del paso.

Otros consejos

Sólo tienes que mover el código en un Complemento de Excel (XLA) - este se carga en el inicio (asumiendo que es en el %AppData%\Microsoft\Excel\XLSTART) pero si es un complemento, no un libro, entonces sólo las macros y definido de inicio de funciones será cargado.

Si las funciones que dependen de una hoja de cálculo en sí, entonces es posible que desee utilizar una combinación de plantillas y complementos.

Estoy distribuyendo parte de una aplicación como esta, disponemos de complementos para Word, Excel y Powerpoint (XLA, PPA, PUNTO) y también de Office 2007 de cinta de versiones (DOTM, XLAM y PDMA)

El complemento de inicio de código crea botones de barra de herramientas si no se encuentran, esto significa que en cualquier libro/documento/etc que puede simplemente pulse el botón de barra de herramientas para ejecutar nuestro código (tenemos dos botones de acción y un botón que muestra un diálogo de configuración)

Las plantillas no son realmente el camino a seguir para el código VBA, Complementos son definitivamente el camino a seguir...

Así que para cargar las barras de herramientas en el inicio estamos usando algo como..(para comprobar si la barra de herramientas existe a pesar de que el código se ejecute para cada hoja de cálculo que está abierto, pero las barras de herramientas son persistentes para la sesión de usuario)

Public Sub Workbook_Open()
     ' startup code / add toolbar / load saved settings, etc.
End Sub

espero que ayude :)

Yo siempre uso un Complemento(xla)/Plantilla(xlt) combinación.Su complemento crea el menú (o la interfaz de usuario de otros puntos de entrada) y las cargas de las plantillas como sea necesario.También escribir los datos que desea persistir a una base de datos (Access, SQLServer, archivo de texto, o incluso un archivo xls).

La primera regla es mantener el código separado de sus datos.Entonces, si más adelante tiene correcciones de errores u otros cambios en el código, usted puede enviar un nuevo add-in y todos sus plantillas y las bases de datos no se ven afectados.

Has mirado en la implementación de ClickOnce el archivo de Excel?

Lo que sobre para guardar una hoja de excel a carpeta de red con permisos de sólo lectura ?La autenticación puede realizarse con la autenticación integrada de windows y no es necesario para almacenar la contraseña de conexión a la base de datos en VBA.Sólo es necesario distribuir un enlace a este lugar para que sus usuarios sólo una vez.Si usted va a hacer una actualización, sólo cambiar los datos en que carpeta de usuario sin previo aviso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top