Deverouiller une cellule en VBA

Résolu/Fermé
CharlemagneKid Messages postés 19 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 15 octobre 2010 - 30 nov. 2009 à 17:59
CharlemagneKid Messages postés 19 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 15 octobre 2010 - 1 déc. 2009 à 15:48
Bonjour à tous les commentcamarcheur,

Après bien des consultations de forums et bien des essais, j'ai un problème qui reste insoluble pour mon tout petit niveau

Alors voila l'histoire:

Je souhaite modifier certaines cellules de ma feuille excel à un moment donner, et les avoir verouiller le reste du temps. Ces cellules peuvent changer donc je n'ai pas leur coordonnées (ce qui explique que je ne peux pas le faire par le menu excel).

Je souhaitais faire ca par VBA de la manière suivante:
1- j'ôte la protection de feuille
2- je déverouille les cellules qui m'interessent
3- je fais ce que j'ai a y faire
4- je reverouille ces cellules
5- je remet la protection de feuille

Bon, pour le 1 et 5, c'est bon:
1- Worksheets("MaFeuille").Unprotect Password:="toto"
5- Worksheets("MaFeuille").Protect Password:="toto"

C'est pour le 2 que je seche. J'avais imaginer un truc du genre:
2- Worksheets("MaFeuille").Cell(X, Y).Locked = True

Mais ca, mon copain VBA n'en veut pas.

Auriez vous un truc a me proposer s'il vous plait, parce que la, je suis un peu coincé.

Merci par avance.

5 réponses

tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
30 nov. 2009 à 18:10
Bonjour,

Une cellule verouillée est uniquement bloquée quand la feuille est protégée, dans ton cas après le "Worksheets("MaFeuille").Unprotect Password:="toto"", tu peux modifier la valeur......Le verrouillage des cellules permet de à un utilisateur de modifier uniquement certaines cellules (les "non-verrouillées") quand la feuille est protégée...
2
tompols Messages postés 1273 Date d'inscription jeudi 29 juillet 2004 Statut Contributeur Dernière intervention 25 novembre 2013 435
1 déc. 2009 à 10:16
Ok compris....
Bah en fait il te manque juste un "s" :
Worksheets("MaFeuille").Cells(X, Y).Locked = True
;)
1
CharlemagneKid Messages postés 19 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 15 octobre 2010
30 nov. 2009 à 18:17
Salut tompols,

c'est bien là la feinte.

En fait, je ne veux pas que l'utilisateur puisse modifier toutes les cellules.

Pour la petite histoire, c'est un fichier de congé que je fais. J'ai créer une usine a gaz qui permet de se loguer par mot de passe. Du coup, je sais si c'est Pierre, Paul ou Jacques qui utilise le fichier.

Si c'est Pierre, je deverouille ses cellules pour lui permettre les modif. Mais je ne veux pas qu'il modifie celle de Paul, il doit juste pouvoir les voir.

Donc voila, je veux pouvoir deverouiller dynamiquement en fonction de la personne logué.

Merci pour ton aide...
0
CharlemagneKid Messages postés 19 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 15 octobre 2010
1 déc. 2009 à 06:01
Alors personne ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CharlemagneKid Messages postés 19 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 15 octobre 2010
1 déc. 2009 à 15:48
Hello tompols,

Mais bon sang mais c'est bien sûr !!!

Je viens de faire le test, et miracle, ca marche !
La ligne exact est:

Worksheets("MaFeuille").Cells(X, Y).Locked = False 'car a "true" on vérouille la cellule

Merci beaucoup pour ton aide.
0