Sécurité Macro

Pol1958

XLDnaute Nouveau
Sécurité Macro [RESOLU]

Bonjour,

Voici mon problème : J'ai créé un fichier excel qui contient des macros qui réagissent suivant les données entrées dans les feuilles de calcul.
Cependant, depuis la version 2000, il est donné le choix aux utilisateurs d'activer ou non les macro inclusent dans les feuilles de calcul et certains utilisateurs refusent leur activation ce qui donne des résultats erronés.

Est-il possible "d'obliger" l'utilisateur d'activer les macros pour ouvrir le fichier et si celui-ci refuse l'activation, le fichier ne s'ouvre pas et un message invite l'utilisateur à activer les macros ?

merci d'avance pour vos réponses !
 
Dernière édition:

CBernardT

XLDnaute Barbatruc
Re : Sécurité Macro

Bonjour Pol1958 et le forum,

Je te propose d'utiliser le système des signatures numériques de l'aide Excel :

Pour signer un fichier :

Dans le menu Outils, cliquez sur Options, puis sur l'onglet Sécurité.
Cliquez sur Signatures numériques.
Cliquer sur Ajouter.
Sélectionner le certificat souhaité, puis cliquez sur OK.

Pour signer un projet de macros :
Ouvrir le fichier qui contient le projet de macros à signer.
Dans le menu Outils, pointer sur Macro, puis cliquer sur Visual Basic Editor.
Dans Explorateur de projet, sélectionner le projet à signer.
Dans le menu Outils, cliquer sur Signature numérique.
Effectuez l'une des actions suivantes :
Si vous n'avez pas déjà sélectionné un certificat numérique ou si vous voulez en utiliser un autre, cliquer sur Choisir, sélectionner le certificat, puis cliquer deux fois sur OK.
Pour utiliser le certificat en cours, cliquez sur OK.
Conseils

Signez les macros uniquement lorsque votre solution a été testée et est prête a être distribuée, car dès que le code d'une macro signée est modifié de n'importe quelle façon, la signature numérique de la macro est supprimée. Toutefois, si vous disposez du certificat numérique approprié sur votre ordinateur, le projet de macros sera automatiquement resigné au moment de l'enregistrement.

Si vous voulez empêcher les utilisateurs de votre solution de modifier accidentellement votre projet de macros et de rendre votre signature non valide, verrouillez le projet de macros avant de le signer. Votre signature numérique indique seulement que vous garantissez que votre projet n'a pas été falsifié depuis sa signature. Elle ne prouve pas que vous avez écrit le projet. Verrouiller votre projet de macros n'empêche pas un autre utilisateur de remplacer la signature numérique par une autre signature. Les administrateurs d'entreprise devront peut-être signer à nouveau les modèles (modèle : un ou plusieurs fichiers contenant la structure et les outils de formatage d'éléments tels que le style et la disposition des pages des fichiers finis. Par exemple, les modèles Word permettent de formater un seul document, alors que les modèles FrontPage permettent de formater un site Web tout entier.) et les macros complémentaires (macro complémentaire : programme complémentaire qui ajoute des commandes personnalisées ou des fonctions personnalisées à Microsoft Office.) de façon à contrôler exactement ce que les utilisateurs peuvent exécuter sur leur ordinateur.

Si vous créez une macro complémentaire qui ajoute du code à un projet de macros, le code doit déterminer si le projet est signé numériquement et indiquer à l'utilisateur les conséquences de la modification d'un projet signé, avant de continuer.

Lors de la signature numérique de macros, veillez à obtenir un horodateur pour permettre à d'autres utilisateurs de vérifier votre signature même après l'expiration du certificat utilisé pour la signature. Consultez Microsoft Office Online pour plus d'informations sur la sécurité de macro et les horodateurs.

Cordialement

Bernard
 

mromain

XLDnaute Barbatruc
Re : Sécurité Macro

bonjour Pol1958, CBernardT

je te propose une autre solution (moins propre)
-à la fermeture du fichier, tu caches toutes les feuilles sauf une (sur laquelle tu inscris qu'il faut activer les macros)
-à l'ouverture, si l'utilisateur active les macros, une macro cache la feuille "de consignes" et affiche les autres.

voici le code
Code:
Const feuillePasMacro As String = "Activer Macros"


Private Sub Workbook_BeforeClose(Cancel As Boolean)
ThisWorkbook.Sheets(feuillePasMacro).Visible = xlSheetVisible
Application.ScreenUpdating = False
For Each curSheet In ThisWorkbook.Sheets
    If curSheet.Name <> feuillePasMacro Then curSheet.Visible = xlSheetVeryHidden
Next curSheet
ThisWorkbook.Save
End Sub

Private Sub Workbook_Open()
Application.ScreenUpdating = False
For Each curSheet In ThisWorkbook.Sheets
    If curSheet.Name <> feuillePasMacro Then curSheet.Visible = xlSheetVisible
Next curSheet
ThisWorkbook.Sheets(feuillePasMacro).Visible = xlSheetVeryHidden
End Sub
et le fichier exemple

a+
 

Pièces jointes

  • Classeur1.xls
    39 KB · Affichages: 131
  • Classeur1.xls
    39 KB · Affichages: 146
  • Classeur1.xls
    39 KB · Affichages: 145

Pol1958

XLDnaute Nouveau
Re : Sécurité Macro

Bonjour à tous,

Un grand merci pour vos réponses ... Je vais tester la solution de mromain car plusieurs utilisateurs ont "transportés" le fichier sur leur pc personnel ... ce qui rend impossible la signature des macros !

Encore merci
Pol
 

Discussions similaires

Statistiques des forums

Discussions
312 305
Messages
2 087 084
Membres
103 461
dernier inscrit
dams94