Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Protection feuille

  • Initiateur de la discussion Initiateur de la discussion SiinNed
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

SiinNed

Guest
Bonjour,

J'ai cherché sur le forum mais je n'ai rien trouvé.

J'ai un fichier excel avec plusieurs onglets et je voudrais qu'il y est 1 profil (compte) qui puisse accéder à tous les onglets et un autre profil à juste 1 onglets.

Est-ce possible ?

Merci.
 
Re : Protection feuille

Bonjour,

J'ai mis en place un système de protection dans certains de mes classeurs. J'explique ma démarche et tu pourras t'en inspirer.

1/ Il faut rendre l'affichage des macros obligatoires pour l'accès aux feuilles. Donc par défaut, j'ai un code qui en sortant du fichier (événement 'sur fermeture du classeur'):
- protège le classeur de l'affichage des feuilles
- masque les feuilles du fichier sauf une feuille de présentation indiquant que les macros sont obligatoires (j'utilise même la propriété de feuille veryhidden pour éviter de donner l'idée aux personnes d'aller trifouiller)

Ainsi, une personne n'acceptant pas les macros à l'ouverture du classeur se trouvera avec un classeur non utilisable.


Cela donne chez moi :

'Je crée dans un module nommé INTERNAL une fonction qui charge mon password de classeur
Function LoadPassword()
MyPassword = "toto"
End Function


'La feuille MYCODE est la feuille qui demande l'activation des macros si jamais ce n'est pas le cas
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationAutomatic
INTERNAL.LoadPassword
ActiveWorkbook.Unprotect (MyPassword)
For i = 1 To ActiveWorkbook.Sheets.Count
ActiveWorkbook.Sheets("MYCODE").Visible = True
If ActiveWorkbook.Sheets(i).Name <> "MYCODE" Then
ActiveWorkbook.Sheets(i).Visible = xlVeryHidden
Else
ActiveWorkbook.Sheets(i).Visible = True
End If
Next
ActiveWorkbook.Protect (MyPassword)
End Sub


2/ il faut créer une table des utilisateurs autorisés afin de déclencher le scénario adéquat. Pour cela, on peut créer une feuille masquée où on a deux colonnes :
- première colonne: le login de session windows
- deuxième colonne: type de profil


3/ Il faut appliquer le scénario adéquat. A cette fin, on va coder dans l’événement 'sur ouverture de classeur' :
- on récupère le login windows
- on qualifie le type de profil associé au login
- on enlève la protection du classeur, on masque/montre les feuilles permises en conséquences, on reprotège le classeur

'-----------
'Pour info, le code pour récupérer le login de session est :
Dim MyUserName As String 'Nom de connection NT
Dim MyObject As Object
'Récupération du nom d'utilisateur NT
Set MyObject = CreateObject("WScript.NetWork")
MyUserName = MyObject.UserName
'-----------

Il suffit alors de rechercher le login dans la feuille et associer le profil. Il faudra traiter le cas du user non listé.


4/ Comme ton password se trouve dans ton code pour protéger / déprotéger le classeur, il faut penser à protéger le code par mot de passe également.


Comme tu peux le voir, je n'ai pas su trouver de fonction dans excel qui gère la sécurité. J'ai donc du faire ce travail manuellement. Il est donc fortement possible que ma solution ne soit pas la meilleure.

Poulpor
 
Re : Protection feuille

Quand j'utilise la méthode 4 sur le site, j'ai une erreur " If Me.motpasse <> "" Then" au niveau de motpasse

Il ne doit pas conaitre ou quelque chose comme ça ?
 
Re : Protection feuille

Ca fonctionne pas, voici mon code dans userform1

Private Sub CommandButton1_Click()
If Me.motpasse <> "" Then
For i = 1 To Range("MotPasse").Count
If UCase(Me.motpasse) = UCase(Range("motpasse")(i)) Then
temp = Range("feuille")(i)
Sheets(temp).Visible = True
End If
Next i
End If
Unload Me
End Sub

Private Sub TextBox1_Change()

End Sub



Et voila mon tableau, mais dans nom de champs c'est pas marqué comme vous.
 

Pièces jointes

  • Sans titre.jpg
    55.3 KB · Affichages: 32
  • Sans titre.jpg
    55.3 KB · Affichages: 34
  • Sans titre.jpg
    55.3 KB · Affichages: 31
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
43
Affichages
816
Réponses
5
Affichages
701
Réponses
4
Affichages
333
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…