Déverrouiller une cellule en vba

Résolu/Fermé
Anthelm Messages postés 198 Date d'inscription lundi 15 octobre 2018 Statut Membre Dernière intervention 2 mars 2024 - 10 déc. 2018 à 20:44
Anthelm Messages postés 198 Date d'inscription lundi 15 octobre 2018 Statut Membre Dernière intervention 2 mars 2024 - 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!

2 réponses

titeufdu89 Messages postés 375 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 38
10 déc. 2018 à 21:04
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 198 Date d'inscription lundi 15 octobre 2018 Statut Membre Dernière intervention 2 mars 2024 1
10 déc. 2018 à 21:06
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 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié le 10 déc. 2018 à 20:57
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 198 Date d'inscription lundi 15 octobre 2018 Statut Membre Dernière intervention 2 mars 2024 1
10 déc. 2018 à 21:06
Salut Vaucluse! je suis parti sur ce que Titeuf mais merci beaucoup!
0