Protection Macro

Bonjour,

J'ai une macro Excel 2010 qui me permet de protéger et de déprotéger les feuilles d'un classeur. Comment protéger la macro elle-même pour que les utilisateurs ne puissent l'utiliser ?

Merci d'avance.

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    En mettant une protection avec mot de passe au module Visual Basic

    Ouvrir le Visual Alt+F11 menu Outils/Propriétés du VBAproject/onglet protection/cocher vérrouiller le projet pour l'affichage et saisir un mot de passe/OK/Enregistrer
    il faut fermer le fichier, la protection s'active à chaque ouverture du fichier
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    1. Merci pour le retour, mais le bouton exécution reste néanmoins actif. Je voudrais être le seul à pouvoir utiliser la macro, car elle sert à déprotéger les feuilles du classeur.
  2. Re,

    Si tu protéges le bouton il n'y aura plus d'accès, ce que je te propose c'est de laisser le bouton comme il est et de compléter ton code, lorsque tu cliqueras sur le bouton un inputbox te demande un mot de passe si le mot de passe est bon la macro s'exécute sinon on sort de la procédure
    1. OK, merci pour le coup de main.
  3. Re,

    Je te prépare un bout de code pour demain
    A+
    Mike-31

    Une période d'échec est un moment rêvé pour semer les graines du savoir.
    1. Re,

      voila le code, soit tu le places dans un bouton Activex ou tu le colle dans un module et tu l'associes à un bouton

      le mot de passe provisoire est open à adapter bien sur

      Sub test()
      Do
      Contrôle = InputBox("Veuillez saisir votre mot de passe", _
      "Accès réglementé", "Votre mot de passe")
      If Contrôle = "open" Then

      'place ici ton code
      'ou fait appel à ta macro, exemple si ta macro se nomme Sub toto()
      'saisi Call toto

      Else
      MyValue = MsgBox("Souhaitez-vous recommencer ?", _
      vbYesNo + vbCritical + vbDefaultButton1, "Le mot de passe saisi n'est pas conforme")
      If MyValue = vbNo Then
      Exit Sub
      End If
      End If
      Loop Until Contrôle = "open"
      End Sub

      si tu as besoin d'un petit montage n'hésite pas

      A+
      Mike-31

      Une période d'échec est un moment rêvé pour semer les graines du savoir.