Desbloquear una celda en VBA
Resuelto
Anthelm
Mensajes publicados
202
Estado
Miembro
-
Anthelm Mensajes publicados 202 Estado Miembro -
Anthelm Mensajes publicados 202 Estado Miembro -
Hola,
tengo una hoja bloqueada que contiene una celda con una función “Date”. Quiero hacer una macro que congele esta fecha reemplazándola por la fecha de hoy (así si abro el archivo al día siguiente, la fecha no cambia)
ActiveWorkbook.Sheets("Impression").Copy
Cells("G1").Locked = False
Range("G1") = Date
La segunda línea falla. He probado mil soluciones...
El problema es que antes de la macro, G1 esté bloqueada, y que ya no lo esté después de usar la macro (que antes, copia el documento)
¡Muchas gracias!
tengo una hoja bloqueada que contiene una celda con una función “Date”. Quiero hacer una macro que congele esta fecha reemplazándola por la fecha de hoy (así si abro el archivo al día siguiente, la fecha no cambia)
ActiveWorkbook.Sheets("Impression").Copy
Cells("G1").Locked = False
Range("G1") = Date
La segunda línea falla. He probado mil soluciones...
El problema es que antes de la macro, G1 esté bloqueada, y que ya no lo esté después de usar la macro (que antes, copia el documento)
¡Muchas gracias!
2 respuestas
-
Hola Anthelm,
Dos cosas:
- con la función "cells" se codifica la dirección de la celda en números (dirección de fila, dirección de columna), es decir, para seleccionar B1 con cells se codifica cells(1,2), mientras que si usas range se codifica: range("B1").
- La función "locked" determina si una vez la hoja protegida la celda en cuestión estará protegida o no.
Para poder modificar una celda en una macro cuando esté "locked = true" o "locked = false" basta desproteger la hoja al inicio del procedimiento y volver a protegerla al final del procedimiento.
Aquí un ejemplo de código:
ActiveSheet.Unprotect Range("G1") = Date
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
A tester
Jc -
Buenas noches
intente con estas dos líneas en su macro:
Range("G1").Locked = False
Range("G1").Value = Date
aunque para la primera línea, no parece necesario desbloquear la celda si la hoja no está protegida.
Y no podrá desbloquearla sin quitar la protección
ya sea al inicio de la macro:
activesheet.unprotect
y al final
activesheet.protect
crdlmnt