XL 2016 Modification de droits d'accès par UF

ReneDav14000

XLDnaute Occasionnel
Bonjour à toutes et à tous,
J'ai créé un formulaire pour gérer les droits d'accès des utilisateurs.
Certains agents existent déjà et peuvent voir leurs droits être modifiés et d'autres nouveaux utilisateurs se voir attribuer des droits d'accès.
Dans la feuille "Accès" du fichier ci-joint il y a un tableau nommé "List_User" dans lequel sont entrés des noms avec un mot de passe et des croix indiquant leur(s) droit(s).
Donc si un agent existe déjà et qu'on lui modifie ses droits, des croix doivent être ajoutées ou supprimées.
Pour un nouvel arrivant il ne peut y avoir que des ajouts de croix et l'attribution d'un mot de passe limité à 7 caractères.

Pourriez-vous m'aider à réaliser ce projets s'il vous plait car je n'y arrive pas ?
En vous en remerciant par avance

PS : J'ai oublié une donnée importante, certains utilisateurs peuvent avoir accès à certaine feuille en lecture seulement. Désolé pour cet oubli
 

Pièces jointes

  • Utilisateur.xlsm
    16.3 KB · Affichages: 18
Dernière édition:
Solution
désolé!
VB:
Private Sub ComboUtil_Change()
If Me.ComboUtil.Value = "" Or Me.TextPrenom.Value = "" Or Me.TextMdP.Value = "" Then Exit Sub

With ThisWorkbook.Sheets("Accès")
    Dim I As Integer: I = NomPnom(ComboUtil.Value, TextPrenom.Value, TextMdP.Value, .Range("A:A"))
    If I = 0 Then MsgBox "Pas trouvé": Exit Sub
    With .Cells(I, "A")
        Me.TextPrenom.Value = .Cells.Offset(, 1)
        Me.TextMdP = .Cells.Offset(, 2)
        Me.CheckBoutAgent = .Cells.Offset(, 3) = "X" 'True/False
        Me.CheckBouEntSort = .Cells.Offset(, 4) = "X"
        Me.CheckBoutHor = .Cells.Offset(, 5) = "X"
        Me.CheckBoutEtiq = .Cells.Offset(, 6) = "X"
        Me.CheckFeuilCalcul = .Cells.Offset(, 7) = "X"
        Me.CheckFeuilData =...

ReneDav14000

XLDnaute Occasionnel
re
entre nous @ReneDav14000
si tu tiens a mettre certaines restrictions a des utilisateur oubli ce userform login/mdp
sert toi de la feuille tout court elle seule avec un mot de passe bien costaud( bien qu’illusoire)sur cette feuille xlveryidden
tu te crée un tableau login | msp | restriction
avec les filtres sélectionner un item pour le modifier ne sera pas trop difficile
et basta
facile a maintenir
et certainement plus perenne que des pseudo popup de login avec des codes abracadabrantesques
qui même pour toi "le concepteur" seront compliqués a maintenir
Même si je le voulais je ne le pourrais pas car je ne suis qu'un exécutant. Ce sont les contraintes liées à mon poste, il y a des donneurs d'ordres au dessus de moi.
 

dysorthographie

XLDnaute Accro
désolé!
VB:
Private Sub ComboUtil_Change()
If Me.ComboUtil.Value = "" Or Me.TextPrenom.Value = "" Or Me.TextMdP.Value = "" Then Exit Sub

With ThisWorkbook.Sheets("Accès")
    Dim I As Integer: I = NomPnom(ComboUtil.Value, TextPrenom.Value, TextMdP.Value, .Range("A:A"))
    If I = 0 Then MsgBox "Pas trouvé": Exit Sub
    With .Cells(I, "A")
        Me.TextPrenom.Value = .Cells.Offset(, 1)
        Me.TextMdP = .Cells.Offset(, 2)
        Me.CheckBoutAgent = .Cells.Offset(, 3) = "X" 'True/False
        Me.CheckBouEntSort = .Cells.Offset(, 4) = "X"
        Me.CheckBoutHor = .Cells.Offset(, 5) = "X"
        Me.CheckBoutEtiq = .Cells.Offset(, 6) = "X"
        Me.CheckFeuilCalcul = .Cells.Offset(, 7) = "X"
        Me.CheckFeuilData = .Cells.Offset(, 8) = "X"
        Me.CheckBoutReserv = .Cells.Offset(, 9) = "X"
        Me.CheckBoutPlan = .Cells.Offset(, 10) = "X"
        Me.CheckFeuildroits = .Cells.Offset(, 11) = "X"
    End With
End With
End Sub

Private Sub TextNOM_Change()
TextNOM.Value = UCase(TextNOM.Value)
End Sub

Private Sub TextPrenom_Change()
TextPrenom.Value = StrConv(TextPrenom, vbProperCase)
If ComboUtil.Visible And TextPrenom.Value <> "" Then ComboUtil_Change
End Sub
Private Sub TextMdP_Change()
If ComboUtil.Visible And TextMdP.Value <> "" Then ComboUtil_Change
End Sub
 

Discussions similaires

Réponses
2
Affichages
114