Déverrouiller une cellule en vba

Résolu
Anthelm Messages postés 202 Statut Membre -  
Anthelm Messages postés 202 Statut Membre -
Bonjour,
j'ai une feuille verrouillée contenant une cellule avec une fonction "Date". Je souhaite faire une macro qui fige cette date en la replaçant par la date du jour (comme ça si j'ouvre le fichier le lendemain, la date n'a pas bougée)

ActiveWorkbook.Sheets("Impression").Copy
Cells("G1").Locked = False
Range("G1") = Date

La deuxième ligne bug. J'ai essayé un milliard de solutions...

Le problème c'est qu'avant la macro, G1 soit verrouillée, et qu'elle ne le soit plus après l'utilisation de la macro (qui avant, copie le document)

Merci beaucoup!

2 réponses

titeufdu89 Messages postés 387 Statut Membre 38
 
Bonjour Anthelm,

Deux choses
- avec la fonction "cells" on code l'adresse de la cellule en numérique du type (adresse de ligne, adresse de colonne) c'est a dire que pour selectionner B1 avec cells on code cells(1,2)
alors que si tu utilise range tu code : range("B1")


- La fonction "locked" détermine si une fois la feuille protégée la cellule en question sera protégée ou non.
Pour pouvoir modifier une cellule dans une macro qu'elle soit "locked = true" ou "locked = false" il suffit de déprotéger la feuille en début de procédure et reprotéger la feuille en fin de procédure.

Voici un exemple de code :
ActiveSheet.Unprotect
    Range("G1") = Date
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True


A tester

Jc
2
Anthelm Messages postés 202 Statut Membre 1
 
Ah oui je m'y prenais mal!

- La fonction "locked" détermine si une fois la feuille protégée la cellule en question sera protégée ou non.

Oui, merci beaucoup! en 3 étapes, ducoup, mais ça marche très bien :)
0
Vaucluse Messages postés 27336 Statut Contributeur 6 441
 
Bonsoir
essayez avec ces deux lignes dans votre macro:
Range("G1").Locked = False
Range("G1").Value = Date

bien que pour la 1° ligne, il ne semble pas utile de déverrouiller la cellule si la feuille n 'est pas protégée.
Et vous ne pourrez pas la déverrouiller sans enlever la protection
soit début de macro:
activesheet.unprotect
et fin
activesheet.protect

crdlmnt
1
Anthelm Messages postés 202 Statut Membre 1
 
Salut Vaucluse! je suis parti sur ce que Titeuf mais merci beaucoup!
0