Simplifier un bout de code pour passage en lecture seule
Bonjour le forum,
J'ai un fichier en réseau disponible pour plusieurs dizaines d'utilisateurs, mais je voudrais restreindre l'accès en lecture-écriture à seulement 6 d'entre eux.
Pour ce faire, j'utilise ce code à l'ouverture
Code:
1 2 3 4 5 6 7 8 9 10
|
If (UCase(Environ("Username"))) <> "Machin1" And _
(UCase(Environ("Username"))) <> "Machin2" And _
(UCase(Environ("Username")))<> "Machin3" And _
(UCase(Environ("Username"))) <> "Machin4" And _
(UCase(Environ("Username"))) <> "Machin5" And _
(UCase(Environ("Username"))) <> "Machin6" Then
On Error GoTo Fin
ThisWorkbook.ChangeFileAccess xlReadOnly
Fin: End If |
J'aimerais améliorer deux choses même si ce code a l'air de fonctionner... la succession de "if and" si possible.
Code:
1 2 3 4 5 6
|
Select Case (UCase(Environ("Username")))
Case <> "Machin1", "Machin2", "Machin3", "Machin4", "Machin5", "Machin6"
On Error GoTo Fin
ThisWorkbook.ChangeFileAccess xlReadOnly
Fin: End select |
N'a l'air de donner l'accès en lecture écriture seulement à Machin1.
Et puis, j'ai mis le On Errot GoTo pour éviter une erreur quand un des utilisateurs élus est déjà sur le fichier et qu'un autre élu veut l'ouvrir.
Merci de vos lumières encore une fois.