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

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: 19
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
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
3
Affichages
598
Réponses
2
Affichages
453
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…