vba Proteger une feuille et autoriser certaines cellules

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

C

chrisssou

Guest
Bonjour à tous,

Voila mon problème, j'ai un fichier excel sur lequel j'aimerai protéger l’accès en écriture a certaines cellules pour certains utilisateurs. Je récupère donc le nom d'utilisateur que j'assigne a une variable

user = Environ("username")

J'aimerai comparer cette variable et voir si elle se trouve dans un tableau que j'ai mis sur une autre feuille et si oui dans quelle colonne. En fonction de la colonne ou se trouve l'utilisateur je voudrais restreindre l’écriture sur certaines cellules. J'ai trouvé le code pour protéger la feuille et n'autoriser que certaines cellules mais je n'arrive pas a trouver la methode pour faire le reste.

Merci de votre aide 🙂
 
Re : vba Proteger une feuille et autoriser certaines cellules

Bonjour

il devrait suffire, en fonction des noms (ou mots de passe) de changer les propriétés "locked" des cellules à géométrie variable

un petit test

Sub e()
MsgBox Range("A1").Locked
If Range("A1").Locked = False Then
Range("A1").Locked = True
MsgBox Range("A1").Locked
Else
Range("A1").Locked = False
MsgBox Range("A1").Locked
End If
End Sub
 
Re : vba Proteger une feuille et autoriser certaines cellules

Bonjour ERIC S,

Merci pour ta réponse. En fait ce sur quoi je bloque c'est le fait de comparer ma variable avec mon tableau et de savoir dans quelle colonne ma variable se trouve.
 
Re : vba Proteger une feuille et autoriser certaines cellules

il faut mettre du code au niveau de ta feuille, avec la subroutine

Private Sub Worksheet_Change(ByVal Target As Range)
'ligne suivante fait sortir si la cible n'est pas en A1
if intersect(target,range("A1") is nothing then exit sub

'.......ton code

End Sub

le target est ta cellule active, tu peux utiliser target.address, target.value... et comparer le value à ta liste
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

S
Réponses
5
Affichages
1 K
Sebosteo
S
Retour