Protection classeur en fonction du username

incubus20851

XLDnaute Occasionnel
Bonjour à toute et à tous !

Voici ma petite question du jour :

J'ai un fichier excel, qui cherche si je suis l'utilisateur "ARU346" il montre un onglet appelé "Envoi" et si je ne suis pas "ARU346" il masque cet onglet.

J'aimerais par le même principe si je suis l'utilisateur "ARU346" il laisse le classeur sans protection. Et si je ne suis pas "ARU346" alors il protège le classeur à l'ouverture du fichier mais sans mot de passe

Voici mon code :

Code:
Private Sub Workbook_Open()
Application.AskToUpdateLinks = False
'controle du nom de l'utilisateur de la session windows
If Environ("UserName") = "ARU346" Then Sheets("Envoi").Visible = True
'nom utilisateur office
If Application.UserName = "ARU346" Then Sheets("Envoi").Visible = True
'controle du nom de l'utilisateur de la session windows
If Environ("UserName") <> "ARU346" Then Sheets("Envoi").Visible = False
'nom utilisateur office
If Application.UserName <> "ARU346" Then Sheets("Envoi").Visible = False

[COLOR="Red"]For Each feuil In Application.Sheets
feuil.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True _
        , AllowFormattingCells:=True
Next feuil[/COLOR]
End Sub

Quand j'ouvre le classeur il est toujours protégé
Est-ce que j'ai mal placer le texte en rouge ? Que dois-je rajouter ?

Merci beaucoup d'avances pour vos réponses
A bientôt
 

mromain

XLDnaute Barbatruc
Re : Protection classeur en fonction du username

bonjour incubus20851,

le problème vient sûrement du fait que "Environ("UserName")" est différent de "Application.UserName".
un des 2 doit être égal à "ARU346" (sûrement Environ("UserName")), mais l'autre non.

tu pourrais essayer avec un code du genre :
Code:
Private Sub Workbook_Open()
Application.AskToUpdateLinks = False
'controle du nom de l'utilisateur de la session windows
If Environ("UserName") = "ARU346" Then
    Sheets("Envoi").Visible = True
Else
    Sheets("Envoi").Visible = False
    
    'protéger les feuilles
    For Each feuil In Application.Sheets
    feuil.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True _
            , AllowFormattingCells:=True
    Next feuil
End If
End Sub
a+
 

grégoryh

XLDnaute Nouveau
Re : Protection classeur en fonction du username

Essaie ça,


Public Sub Workbook_Open()

Application.AskToUpdateLinks = False

If Environ("UserName") = "ARU346" Or Application.UserName = "ARU346" Then
MsgBox "gg"
End If

If Environ("UserName") <> "ARU346" Or Application.UserName <> "ARU346" Then
MsgBox "aa"

For Each feuil In Application.Sheets
feuil.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True
Next feuil

End If

End Sub
 

grégoryh

XLDnaute Nouveau
Re : Protection classeur en fonction du username

Ooups, désolé, j'ai oublié de mettre Sheets("Envoi").visible;;;

Public Sub Workbook_Open()

Application.AskToUpdateLinks = False

If Environ("UserName") = "ARU346" Or Application.UserName = "ARU346" Then
Sheets("Envoi").Visible = True
End If

If Environ("UserName") <> "ARU346" Or Application.UserName <> "ARU346" Then
Sheets("Envoi").Visible = False

For Each feuil In Application.Sheets
feuil.Protect , DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowFormattingCells:=True
Next feuil

End If

End Sub
 

incubus20851

XLDnaute Occasionnel
Re : Protection classeur en fonction du username

Ok super pour les réponses merci,

A première vu, ça a l'air de marcher chez moi !

Faut que j'attende demain pour l'ouvrir avec un autre poste pour voir si il protège bien le document !

Je reviendrai vers vous pour le résultat

Merci bonne soirée
A bientôt
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 627
Membres
103 608
dernier inscrit
rawane