Protéger classeur excel

Fermé
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 - 7 nov. 2013 à 16:57
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 - 8 nov. 2013 à 11:44
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 voir également:

3 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 523
7 nov. 2013 à 17:17
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
bonjour

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

Option Private Module

A+
Maurice
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
8 nov. 2013 à 10:27
Pour moi, l'option private sert uniquement à gérer la portée des variables...
0
blux Messages postés 26003 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 25 avril 2024 3 289
Modifié par ichiriac le 8/11/2013 à 14:50
@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