Re,
Une méthode :
Un tableau : User en lignes, Dossier en colonnes, extensible.
On définit les droits par un nombre résultant de l'addition de 1 si lecture, 2 si écriture, 4 si suppression.
Colonne d'en-tête et ligne d'en-tête sont nommées (en dynamique). Les noms renvoient des listes qui alimentent des listes déroulantes en F2 (User) et F3 (Dossier).
En E2 et E3, formule calculant le rang des choix F2 et F3 dans les listes.
Les changements en F2 ou F3 déclenchent une procédure évènementielle :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim v%, i%, dr(2)
If Not Intersect(Target, Me.Range("F2:F3")) Is Nothing Then
With Me.Range("B6")
v = .Cells(Me.Range("E2"), Me.Range("E3"))
End With
For i = 0 To 2
If 2 ^ i And v Then dr(i) = "x"
Next i
Me.Range("G2:I2").Value = dr
End If
End Sub
Elle récupère la valeur correspondant aux droits attachés au User et au Dossier choisis. Elle teste cette valeur pour en extraire quels droits élémentaires sont autorisés, qu'elle consigne dans un tableau à 3 éléments ("x" si autorisé). Le tableau est affecté à la plage G2:I2 de façon à afficher le résultat.
Cordialement.