Discussion:
Protection feuille
(trop ancien pour répondre)
Brat'ac
2017-01-30 14:45:12 UTC
Permalink
Bonjour,

(Excel 2007)

Dans un classeur ou l'on peut protéger les feuilles par un mot de passe
diffèrent
est-il possible d'avoir un mot de passe superviseur qui passe outre la
protection ?

Merci.
DanielCo
2017-01-30 15:08:17 UTC
Permalink
Bonjour,
Feuille par feuille. Le mot de passe peut être le même. Par macro, tu
peux passer outre la protection.
Cordialement.
Daniel
Post by Brat'ac
Bonjour,
(Excel 2007)
Dans un classeur ou l'on peut protéger les feuilles par un mot de
passe diffèrent
est-il possible d'avoir un mot de passe superviseur qui passe outre
la protection ?
Merci.
isabelle
2017-01-30 15:59:20 UTC
Permalink
bonjour,

non, mais tu peut utiliser une macro,
et protèger ce projet vba pour que les mots de passe ne soit pas visible

'exemple, en supposant qu'il n'y ait que 2 feuilles dans le classeur
Sub Protect()
Dim i As Integer
For i = 1 To Sheets.Count
Sheets("Feuil" & i).Protect Password:=i & "zz", DrawingObjects:=True,
Contents:=True, Scenarios:=True
Next
End Sub

Sub Unprotect()
Dim i As Integer
For i = 1 To Sheets.Count
Sheets("Feuil" & i).Unprotect Password:=i & "zz"
Next
End Sub

isabelle
Post by Brat'ac
Bonjour,
(Excel 2007)
Dans un classeur ou l'on peut protéger les feuilles par un mot de passe diffèrent
est-il possible d'avoir un mot de passe superviseur qui passe outre la protection ?
Merci.
Brat'ac
2017-01-30 16:16:15 UTC
Permalink
Post by isabelle
bonjour,
non, mais tu peut utiliser une macro,
et protèger ce projet vba pour que les mots de passe ne soit pas visible
'exemple, en supposant qu'il n'y ait que 2 feuilles dans le classeur
Sub Protect()
Dim i As Integer
For i = 1 To Sheets.Count
Sheets("Feuil" & i).Protect Password:=i & "zz", DrawingObjects:=True,
Contents:=True, Scenarios:=True
Next
End Sub
Sub Unprotect()
Dim i As Integer
For i = 1 To Sheets.Count
Sheets("Feuil" & i).Unprotect Password:=i & "zz"
Next
End Sub
isabelle
Re

C'est dommage car c'est un fichier qui à une feuille par utilisateur,
chaque utilisateur
choisi son pass de manière à ne pouvoir modifier que la sienne.
Et évidemment un jour un utilisateur ne se rappellera plus du sien 8-o
Merci.
DanielCo
2017-01-30 16:20:08 UTC
Permalink
Post by Brat'ac
Post by isabelle
bonjour,
non, mais tu peut utiliser une macro,
et protèger ce projet vba pour que les mots de passe ne soit pas visible
'exemple, en supposant qu'il n'y ait que 2 feuilles dans le
classeur
Sub Protect()
Dim i As Integer
For i = 1 To Sheets.Count
Sheets("Feuil" & i).Protect Password:=i & "zz",
DrawingObjects:=True, Contents:=True, Scenarios:=True
Next
End Sub
Sub Unprotect()
Dim i As Integer
For i = 1 To Sheets.Count
Sheets("Feuil" & i).Unprotect Password:=i & "zz"
Next
End Sub
isabelle
Re
C'est dommage car c'est un fichier qui à une feuille par utilisateur,
chaque utilisateur
choisi son pass de manière à ne pouvoir modifier que la sienne.
Et évidemment un jour un utilisateur ne se rappellera plus du sien
8-o
Merci.
Stocke les mots de passe dans un classeur géré par toi.
Daniel
Brat'ac
2017-01-30 19:37:37 UTC
Permalink
Post by DanielCo
Stocke les mots de passe dans un classeur géré par toi.
Daniel
Bonne idée, je vais regarder cela.

Bonne soirée.
HB
2017-02-01 15:33:04 UTC
Permalink
Bonjour,

Cela peut se faire avec une feuille masquée ;
(avec un projet VBA verrouillé nul ne pourra la voir)

Ensuite y'a plus qu'a y stocker les mots de passe

but ... pero ... mais ...
comment le Classeur "sait" que l'utilisateur a dé-verrouillé sa feuille
puis mis un nouveau mot de passe ???

Il faudrait pousser le bouchon plus loin en étant plus strict ... :

Les feuilles seront verrouillées avec des mots de passe
connus de toi seul.
Les utilisateurs auront accès à une macro d'authentification
(petit formulaire basique) qui permettra à chacun d'accéder à sa feuille...

Sera-t-il nécessaire que Monsieur X voit la feuille de Mme Z ?

** Si non
la macro d'authentification se contente de
démasquer/masquer ...

C'est sûr, simple à comprendre pour les usagers,
facile à mettre en oeuvre...

** Si oui
il faut jouer avec la nature de la protection :
la feuille reste protégée
mais les cellules sont toutes déverrouillées ;
et l'utilisateur peut ... insérer, trier, etc ...
(voir dans les options de la méthode protect)
La seule chose qu'il ne peut pas faire, en fait;
c'est enlever la protection ;o)
C'est un peu plus usine à gaz
mais ça me semble faisable ...






HB
Post by Brat'ac
Post by DanielCo
Stocke les mots de passe dans un classeur géré par toi.
Daniel
Bonne idée, je vais regarder cela.
Bonne soirée.
LSteph
2017-02-02 13:51:33 UTC
Permalink
Bonjour,

Pour gérer ce que tu demandes je ne mettrai aucun mot de passe,
mais puisque ce classeur est en réseau entre plusieurs utilisateurs.
Supposant que l'utilisateur s'identifie en ouvrant son poste:
je me servirai du nom d'utilisateur de session de l'application pour gérer la ou les feuilles à afficher.
On commence par masquer toutes feuilles sauf une (celle d'accueil)
lors de l'enregistrement.
Puis Gérer l'affichage par UserName à l'ouverture du classeur.

Exemple à adapter:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
If sh.CodeName = "Feuil1" Then
sh.Visible = xlSheetVisible
Else
sh.Visible = xlSheetVeryHidden
End If

Next

End Sub

Private Sub Workbook_Open()
Select Case Application.UserName
Case "Dupont Marcel"
Feuil2.Visible = xlSheetVisible
Case "Durand Patrick"
Feuil3.Visible = xlSheetVisible
Case Else
End Select
End Sub

'LSteph
LSteph
2017-02-02 14:00:02 UTC
Permalink
... je ne l'ai pas précisé, mais cela doit aller dans le thisworkbook
et une fois que l'on a testé, protéger le projet.
LSteph
2017-02-02 14:22:45 UTC
Permalink
Re,

j'avais perçu incomplètement l'objectif...
Une fois les feuilles gérées à l'ouverture selon username cela n'empêche pas l'utilisateur de mettre un mot de passe sur sa feuille, ...sauf si tu as mis uniquement un mdp à toi sur toutes les feuilles en laissant les cellules déverrouilées.
Brat'ac
2017-02-06 09:53:21 UTC
Permalink
Post by Brat'ac
Bonjour,
Pour gérer ce que tu demandes je ne mettrai aucun mot de passe,
mais puisque ce classeur est en réseau entre plusieurs utilisateurs.
je me servirai du nom d'utilisateur de session de l'application pour gérer la
ou les feuilles à afficher. On commence par masquer toutes feuilles sauf
une (celle d'accueil) lors de l'enregistrement.
Puis Gérer l'affichage par UserName à l'ouverture du classeur.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
Dim sh As Worksheet
For Each sh In ThisWorkbook.Sheets
If sh.CodeName = "Feuil1" Then
sh.Visible = xlSheetVisible
Else
sh.Visible = xlSheetVeryHidden
End If
Next
End Sub
Private Sub Workbook_Open()
Select Case Application.UserName
Case "Dupont Marcel"
Feuil2.Visible = xlSheetVisible
Case "Durand Patrick"
Feuil3.Visible = xlSheetVisible
Case Else
End Select
End Sub
'LSteph
Avec du retard !! Merci je regarde

Loading...