2009-09-03 7 views
1

Dans notre projet, nous avons un modèle Excel (.xlt) et un fichier de compléments (.xla). Ces fichiers sont utilisés pour créer une vue de données. Dataview n'est rien d'autre qu'une sorte de rapport. Le xla contient du code pour créer des contrôles pour créer, supprimer, gérer l'affichage de données et son contenu. Ces contrôles sont des contrôles OCX créés dans VC++ pour créer l'aperçu de données. Nous avons le code des compléments séparément et le fichier modèle séparément. Les xlt et xla ont été signés numériquement pour s'assurer que le code est inviolable. Tout fonctionnait bien jusqu'à ce que la signature numérique soit en image. La vue de données est créée en ouvrant le fichier de modèle (.xlt) et en enregistrant le fichier dans l'extension .xls, ce qui ne modifie pas les fichiers xlt et xla signés numériquement. Lorsque nous essayons de sauvegarder cela, nous obtenons le message suivant "Vous essayez de modifier un projet signé, vous n'avez pas la bonne clé pour signer le projet ...."Signature numérique pour Macro Excel

Lorsque nous donnons Enregistrer les modifications et annuler la signature la signature est perdue uniquement pour le nouveau fichier généré. La signature reste la même pour xlt et xla.

Nous avons également essayé d'éditer manuellement les cellules dans l'Excel et de l'enregistrer mais nous n'obtenons pas ce message ci-dessus. Ce n'est qu'après avoir créé la vue de données en utilisant le contrôle OCX et en les sauvegardant que le message ci-dessus apparaît.

Répondre

0

Qu'essayez-vous de protéger? Avez-vous signé l'intégralité du classeur/modèle, ou avez-vous signé uniquement le code? Le fichier .xls est une copie du fichier .xlt, de sorte que la signature du modèle est également copiée dans le fichier .xls. Idées:

  1. Essayez de signer uniquement le code dans le modèle. Dans l'EDI, utilisez Outils -> Signature numérique (Excel 2002/2003)
  2. Supprimez tout le code du modèle et placez-le dans l'add-in
  3. Si c'est trop difficile, faites un second ajout avec seulement le code à partir du modèle
0

J'ai aussi eu un problème similaire. J'ai découvert que cela se produisait uniquement lorsque mes macros inséraient ou supprimaient une feuille de calcul dans le classeur. Il s'avère que parce que chaque feuille de calcul a des macros spécifiques à cette feuille de calcul, l'ajout ou la suppression de feuilles de calcul modifie efficacement le code source de la macro.

Merci à Keith Survell au Turbo Law pour moi d'obtenir souligné dans la bonne direction sur cette question:

http://help.turbolaw.com/entries/362246-warning-message-you-have-modified-a-signed-project-you-do-not-have-the-right-key-to-sign-this-projec

Je n'ai pas été en mesure de trouver une source Microsoft autorité qui explique cette question.