Protection d'une feuille en fonction des mots de passes

  • Initiateur de la discussion Initiateur de la discussion Kersijus
  • 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 !

Kersijus

XLDnaute Junior
Bonjour à tous et aux autres,

Je souhaiterais mettre à disposition un fichier disponible à plusieurs services. Néanmoins, il faut que chaque service n'ait accès qu'à certains onglets. J'ai donc procédé en créant une macro qui gère l'affichage des onglets en fonction du mot de passe saisi lors de l'ouverture. Ci-dessous le code réalisé*:

Code:
Option Explicit
 

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Byte
 
    If ThisWorkbook.Saved Then
        ActiveWorkbook.Unprotect
        For i = 2 To 4
            Sheets(i).Visible = False
        Next i
        ActiveWorkbook.Protect Structure:=True
        ThisWorkbook.Save
    Else
        ActiveWorkbook.Unprotect
        For i = 2 To 4
            Sheets(i).Visible = False
        Next i
        ActiveWorkbook.Protect Structure:=True
    End If
 
End Sub
 
Private Sub Workbook_Open()
Dim MotDePasse As String
Dim i As Byte
 
    MotDePasse = InputBox("Veuillez saisir le mot de passe de votre service", "Saisie")
    ActiveWorkbook.Unprotect
    Select Case MotDePasse
        Case "service1"
            Sheets(2).Visible = True
        Case "service2"
            Sheets(3).Visible = True
        Case "service3"
            Sheets(4).Visible = True
        Case "admin"
            For i = 2 To 4
                Sheets(i).Visible = True
            Next i
        Case Else
            MsgBox "Aucun mot de passe reconnu. Veuillez rouvrir le classeur."
    End Select
    ActiveWorkbook.Protect Structure:=True
End Sub

Je vous transmet également une maquette du fichier. Pouvez-vous me dire si le code réalisé est correct ou s'il faut quelque chose de différent*? Peut-on modifier la structure de celui-ci de telle sorte que le fichier ne s'ouvre pas du tout si un code erroné est entré (ceci afin de supprimer le premier onglet qui est vide et ne sert à rien)*? Par avance merci pour vos réponses.

Cordialement.

K<L<M
 

Pièces jointes

Re : Protection d'une feuille en fonction des mots de passes

Bonjour,
Le code étant dans le fichier, tu ne peux pas ne pas l'ouvrir si tu veux que le code s'exécute. tu peux compléter l'instruction pour le refermer si le code est inexact

MsgBox "Aucun mot de passe reconnu. Veuillez rouvrir le classeur.": Application.DisplayAlerts = False: ActiveWorkbook.Close: Application.DisplayAlerts = True

Sur la même ligne

a+
 
Re : Protection d'une feuille en fonction des mots de passes

Bonsour®
autre proposition si le fichier est en réseau
et testant les USER-Ids autorisés

dans un module standard
Code:
Private Declare Function WNetGetUserA Lib "mpr" (ByVal lpName As String, ByVal lpUserName As String, lpnLength As Long) As Long
'Fonction à appeler
Code:
Function GetUser() As String
    Dim sUserNameBuff As String
    Dim x As String    
    sUserNameBuff = Space(255)
    x = WNetGetUserA(vbNullString, sUserNameBuff, 255&)
    GetUser = UCase$(Trim(Left(sUserNameBuff, InStr(1, sUserNameBuff, Chr$(0)) - 1)))    
End Function
comparer le résultat de GetUser avec la liste des User autorisés, puis faire les actions souhaitées
 
Dernière édition:
Re : Protection d'une feuille en fonction des mots de passes

Bonjour à vous et merci pour vos propositions

Je vais retenir la solution de CHALET53 qui est plus abordable en terme de temps et de gestion (et qui me rappelle à quel point les solutions les plus simples sont les meilleures). Bien que votre solution Modest geedee soit très intéressante et instructive sur la gestion des autorisations, elle implique qu'une personne soit en mesure de mettre à jour les identifiants au fur et à mesure des changements de postes et du fait du taux de rotation ce ne sera pas chose aisée.

Merci à vous deux en tout cas.
 
- 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

Discussions similaires

Réponses
10
Affichages
281
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
479
Retour