vba Proteger une feuille et autoriser certaines cellules

chrisssou

XLDnaute Nouveau
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 :)
 

ERIC S

XLDnaute Barbatruc
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
 

chrisssou

XLDnaute Nouveau
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.
 

ERIC S

XLDnaute Barbatruc
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
 

ERIC S

XLDnaute Barbatruc
Re : vba Proteger une feuille et autoriser certaines cellules

Re

a regarder
sur la feuille liste je récupère le nom sélectionné et avec equiv, je situe la colonne correspondante
 

Pièces jointes

  • lock cond ES.xls
    27 KB · Affichages: 112

Discussions similaires

Statistiques des forums

Discussions
312 775
Messages
2 092 003
Membres
105 145
dernier inscrit
juliendauba1