Protéger classeur excel

blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   -  
blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

je cherche à protéger un classeur excel (version 2010) dans lequel j'ai mis un formulaire géré en VBA. Je souhaite ainsi que l'on ne puisse pas voir le code, ni changer des valeurs dans les feuilles.

Si je protège avec les méthodes 'standard' (ou alors j'en ai loupé une...), mon code VBA ne peut pas mettre à jour une cellule. Je souhaiterais donc pouvoir laisser la main à mon code, mais interdire toute manip 'manuelle'.

Merci d'avance à qui me dépannera...

--
A+ blux
 "Les cons, ça ose tout.
C'est même à ça qu'on les reconnait"

3 réponses

  1. Gyrus Messages postés 3360 Statut Membre 526
     
    Bonjour,

    Tu devrais t'intéresser à la méthode Worksheet.Protect et plus particullièrement au paramètre UserInterfaceOnly .
    Ce sujet est souvent abordé sur le net.

    A+
    1
  2. foo
     
    bonjour

    regarde aussi la protection des macros
    ex: a mettre dans tous mes modules

    Option Private Module

    A+
    Maurice
    0
    1. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      Pour moi, l'option private sert uniquement à gérer la portée des variables...
      0
  3. blux Messages postés 2046 Date d'inscription   Statut Modérateur Dernière intervention   3 455
     
    @Gyrus : merci pour l'option, c'est ce que je cherchais.

    J'ai aussi protégé le code, sinon ça ne sert à rien ;-)

    En résumé :

    - protection des feuilles via VBA :


    Private Sub Workbook_Open()
    Dim wSheet As Worksheet
    For Each wSheet In Worksheets
    wSheet.Protect Password:="secret", _
    UserInterFaceOnly:=True
    Next wSheet
    End Sub

    On peut déprotéger les feuilles en saisissant le mot de passe 'secret'.

    - protection du code (visible via ALT-F11) :

    - Ouvrir la fenêtre de code (ALT-F11)
    - Se placer sur le projet VBA du classeur
    - Clic droit, choisir "Propriétés de VBAProject..."
    - Cliquer sur l'onglet "Protection"
    - Cocher la case "Verrouiller le projet pour affichage"
    - Remplir les cases mot de passe

    Il faudra saisir le mot de passe lorsqu'on voudra visualiser le code.

    A+ blux
     "Les cons, ça ose tout.
    C'est même à ça qu'on les reconnait"
    0