Déverrouiller une cellule en vba
Résolu
Anthelm
Messages postés
202
Statut
Membre
-
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!
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!
A voir également:
- Déverrouiller une cellule en vba
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Excel compter cellule couleur sans vba - Guide
- Excel cellule couleur si condition texte - Guide
- Bloquer une cellule excel - Guide
- Aller à la ligne dans une cellule excel - Guide
2 réponses
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 :
A tester
Jc
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
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
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
- 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 :)