Une autre méthode de gestion des versions d'un fichier XLA consiste à utiliser une propriété personnalisée dans les propriétés du document. Vous pouvez accéder et manipuler en utilisant COM comme décrit ici: http://support.microsoft.com/?kbid=224351.
Les avantages de ce sont:
Une autre alternative serait de stocker le numéro de version (éventuellement d'autres données de configuration) sur une feuille de calcul dans le fichier XLA. La feuille de calcul ne serait pas visible pour les utilisateurs de la XLA. Une technique que j'ai utilisée dans le passé est de stocker le complément en tant que fichier XLS dans le contrôle source, puis dans le cadre du processus de construction (par exemple dans un événement Post-Build), exécutez le script ci-dessous pour le convertir en XLA. le répertoire de sortie. Ce script peut être facilement étendu pour mettre à jour un numéro de version dans une feuille de calcul avant de l'enregistrer. Dans mon cas, j'ai fait cela parce que mon complément Excel utilisait VSTO, et Visual Studio ne supporte pas directement les fichiers XLA.
'
' ConvertToXla.vbs
'
' VBScript to convert an Excel spreadsheet (.xls) into an Excel Add-In (.xla)
'
' The script takes two arguments:
'
' - the name of the input XLS file.
'
' - the name of the output XLA file.
'
Option Explicit
Dim nResult
On Error Resume Next
nResult = DoAction
If Err.Number <> 0 Then
Wscript.Echo Err.Description
Wscript.Quit 1
End If
Wscript.Quit nResult
Private Function DoAction()
Dim sInputFile, sOutputFile
Dim argNum, argCount: argCount = Wscript.Arguments.Count
If argCount < 2 Then
Err.Raise 1, "ConvertToXla.vbs", "Missing argument"
End If
sInputFile = WScript.Arguments(0)
sOutputFile = WScript.Arguments(1)
Dim xlApplication
Set xlApplication = WScript.CreateObject("Excel.Application")
On Error Resume Next
ConvertFileToXla xlApplication, sInputFile, sOutputFile
If Err.Number <> 0 Then
Dim nErrNumber
Dim sErrSource
Dim sErrDescription
nErrNumber = Err.Number
sErrSource = Err.Source
sErrDescription = Err.Description
xlApplication.Quit
Err.Raise nErrNumber, sErrSource, sErrDescription
Else
xlApplication.Quit
End If
End Function
Public Sub ConvertFileToXla(xlApplication, sInputFile, sOutputFile)
Dim xlAddIn
xlAddIn = 18 ' XlFileFormat.xlAddIn
Dim w
Set w = xlApplication.Workbooks.Open(sInputFile,,,,,,,,,True)
w.IsAddIn = True
w.SaveAs sOutputFile, xlAddIn
w.Close False
End Sub
Une autre façon à la version d'un XLA, est de stocker le numéro de version dans la propriété de commmand bar/barre d'outils si vous avez un (par exemple, stocker le verison dans l'info-bulle). Le code VBA peut être désynchronisé avec la barre de commande du code xla si vous échangez les fichiers xla. Comparer cette info-bulle avec le code VBA - avoir une fonction dans le code qui se compare avec la version de l'info-bulle avec le code. De là, vous pouvez ensuite supprimer la barre de commande et la reconstruire. J'espère que cela pourra aider. – ozmike