Protection à la fermeture

Fermé
Marlj Messages postés 58 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 12 mars 2020 - 19 juin 2013 à 17:47
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 20 juin 2013 à 09:15
Bonjour,

J'ai un fichier Excel (2010) avec des cellules verrouillées et la feuille protégée avec un mot de passe. Plusieurs personnes auront accès à ce fichier, mais une seule aura la permission de déverrouiller la feuille. Cependant, comme je ne suis pas certaine que cette personne reprotègera la feuille en fermant le fichier, j'aimerais savoir s'il existe une façon que la protection se réactive automatiquement à la fermeture du fichier.

Merci de vos lumières.
A voir également:

4 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
19 juin 2013 à 18:15
Si tu n'a pas confiance, pourquoi l'autorises-tu à modifier ?
Attention, ça peut tourner à la paranoïa !
0
Marlj Messages postés 58 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 12 mars 2020 21
19 juin 2013 à 18:36
Merci, mais je cherchais une solution! :)
Mais pour ton info, ce n'est pas un problème de confiance, mais étant donné qu'il y a beaucoup de formules dans le fichier, c'est seulement pour éviter que quelqu'un efface des formules par inadvertance, étant donné que plusieurs personnes aura accès à ce fichier. Voilà.
0
Bonjour

on peux le faire dans le ThisWorkbook

Private Sub Workbook_BeforeClose(Cancel As Boolean)
' ----------- mettre ta foumule de protection
end sub

A+

Maurice
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
19 juin 2013 à 18:30
Cette solution est peut -être pire que le mal !
Elle oblige à écrire le mot de passe dans le code.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 413
19 juin 2013 à 18:37
Bonsoir
c'est exact Patrice, mais en protégeant VBA, on peut masquer le code et donc le mot de passe.
crdlmnt
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
19 juin 2013 à 18:50
Effectivement, mais je reste persuadé que sous Excel, les mots de passe posent plus de problèmes qu'ils n'apportent de solutions !
0
Marlj Messages postés 58 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 12 mars 2020 21
19 juin 2013 à 19:27
En fait le mot de passe n'a pas d'importance. Il pourrait ne pas en avoir. C'est surtout pour éviter que les gens efface des formules par erreur. Est-ce qu'il y aurait une autre solution plus simple, sans mot de passe? Merci.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 413
Modifié par Vaucluse le 19/06/2013 à 19:32
Re
puisqu'il ne s'agit que de protéger les formules, je pense que l'utilisateur autorisé n'a pas à les modifier.
Alors pourquoi ne pas simplement protéger la feuille en verrouillant uniquement les cellules avec formules?
Il ne sera pas utile de déverrouiller pour utiliser les données
crdlmnt
0
Marlj Messages postés 58 Date d'inscription mercredi 29 juin 2011 Statut Membre Dernière intervention 12 mars 2020 21
19 juin 2013 à 18:41
Merci pour la réponse rapide, mais je ne suis pas totalement familière avec le ThisWorkbook.

Qu'est-ce que tu entends par "mettre la formule de protection", est-ce le mot de passe?

Merci
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 778
20 juin 2013 à 09:15
Bonjour,

Par "mettre la formule de protection", il faut comprendre écrire le code VBA qui éffectue la protection, par exemple :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Protection de toutes les feuilles du classeur à la fermeture
Const MotDePasseFeuille As String = "Mon mot de passe"
  Call Protège_les_Feuilles(MotDePasseFeuille)
End Sub

Private Sub Protège_les_Feuilles(Optional MotDePasse As String)
' Active la protection de toutes les feuilles du classeur
'
' Arguments:  MotDePasse          [in] Mot de passe (chaine)
'
Dim wsh As Worksheet               'Feuille à protéger
Dim Mode_de_Calcul As Integer      'Mode de calcul initial (manuel, auto, semi-auto)
Dim Flg_Màj_Ecran As Boolean       'Etat initial de l'actualisation automatique de l'écran
'Arrêter l'actualisation automatique de l'écran et les calculs
Flg_Màj_Ecran = Application.ScreenUpdating
Mode_de_Calcul = Application.Calculation
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
'Protéger toutes les feuilles
For Each wsh In Worksheets
  If MotDePasse <> "" Then
    wsh.Protect Password:=MotDePasse, DrawingObjects:=True, Contents:=True, Scenarios:=True
  Else
    wsh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
  End If
Next
'Restaurer le contexte initial
Application.ScreenUpdating = Flg_Màj_Ecran
Application.Calculation = Mode_de_Calcul
End Sub 
0