Menu

Déverrouiller une cellule en vba [Résolu]

Messages postés
146
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
11 mai 2019
- - Dernière réponse : Anthelm
Messages postés
146
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
11 mai 2019
- 10 déc. 2018 à 21:06
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!
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
23967
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
23 mai 2019
4589
1
Merci
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

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 39360 internautes nous ont dit merci ce mois-ci

Anthelm
Messages postés
146
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
11 mai 2019
1 -
Salut Vaucluse! je suis parti sur ce que Titeuf mais merci beaucoup!
Commenter la réponse de Vaucluse
Messages postés
371
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
4 mars 2019
29
1
Merci
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

Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 39360 internautes nous ont dit merci ce mois-ci

Anthelm
Messages postés
146
Date d'inscription
lundi 15 octobre 2018
Statut
Membre
Dernière intervention
11 mai 2019
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 :)
Commenter la réponse de titeufdu89