Protéger classeur excel

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. Modérateur
    @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
    1. bonjour

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

      Option Private Module

      A+
      Maurice
      0
      1. Modérateur
        Pour moi, l'option private sert uniquement à gérer la portée des variables...
        0
    2. 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