Excel macro y bloqueo de celdas

Hola, tengo un archivo Excel donde necesito insertar la fecha y hora en dos columnas, es para monitorear una alarma cuando se activa y cuando desactiva, para que no alteren lo usuarios de la planilla el resultado, deben hacer click con la siguiente macro que estoy utilizando:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("C5:c50")) Is Nothing Then
ActiveCell.Formula = Now()
ActiveCell.Copy
ActiveCell.PasteSpecial xlPasteValues
ActiveSheet.Unprotect
ActiveCell.Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub

El tema es que necesito 2 columnas, si pongo:

If Not Application.Intersect(Target, Range("C5:D50")) Is Nothing Then

si lo defino de esta manera al hacer click en la celda C5 por ejemplo, también me pone la fecha y hora en D5

muchas gracias por su tiempo, por favor me ayudan???

gracias

1 respuesta

Respuesta
1

Probala de este modo. Le agregue algunos controles:

-Para que no de error si la celda ya esta bloqueada

-Para que no se ejecute si intentas seleccionar + de 1 celda

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'x Elamatilde
'si no se selecciona celda en rango cancela
If Application.Intersect(Target, Range("C5:D50")) Is Nothing Then Exit Sub
'si se intenta seleccionar celda ya bloqueada cancela
If Target.Locked Then Exit Sub
'si se selecciona + de 1 celda cancela
If Target.Count > 1 Then Exit Sub
'evita que se vuelva a ejecutar
Application.EnableEvents = False
Target.Value = Now()
'desproteje hoja para bloquear celda
ActiveSheet.Unprotect
Target.Locked = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
'vuelve a habilitar las macros
Application.EnableEvents = True
End Sub

Probala y comentame. Si el tema queda resuelto no olvides valorar y finaliza la consulta.

Sdos

Elsa

Que manera de facilitar las cosas Elsa, sos una Idola, compre todos tus libros,   millones de Gracias!

hagamos curso por Web por favor, obviamente pagando!!!

te hago una consulta, en mi equipo funciona ok, pero al cerrar el archivo y abrirlo no me guarda la config en el worksheet será porque esta protegido? al momento de hacer el cambio y no lo toma, o lo tengo que guardar al archivo con otro formato?  gracias

No entendí del todo tu comentario: lo que tenés en este libro es una hoja 'protegida' con algunas celdas bloqueadas y otras no. Así las cosas esto debe funcionar del mismo modo en cualquier equipo.

Si la macro no se ejecuta en otro equipo, es decir que seleccionas una celda y

'no pasa nada' puede ser:

-Porque ese equipo no tiene habilitadas las macros.

- O porque estás seleccionando alguna celda ya bloqueada

Nota: si borraste los datos, por ej que hayas borrado la columna para volver a empezar, recordá que ahora las que recibieron datos en otro momento están bloqueadas... ese podría ser el 3er motivo.

Sdos y comentame. Sinó enviame tu libro para revisarlo.

Lo que me sucede es que sigo tus pasos y funciona todo ok, pero al cerrar el archivo y volver a abrirlo, no figura en el worksheet la programación que me pasaste, aparece el worksheet en blanco.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Espero me haya explicado bien

Nooo puede ser ;)

Quizás estés guardando el libro como xlsx, es decir en alguna versión 'sin macros'.

Con versiones Excel 2007 en adelante, debes Guardar como... y en 'Tipo de libro' seleccionar xlsm e ingresar solo el nombre (sin extensión así te toma la elegida).

Sdos!

Muchas gracias, lo guarde como xlsm y anda bien, solo a veces se tilda y no ejecuta en C5 por ejemplo, tarda unos segundos, lo extraño es que sí lo hace en C13 por ejemplo.

sds 

Con este nombre de usuario no te ubico (desconozco tu nombre) como para enviarte un mail y solicitarte el libro. Si te parece enviámelo para que lo revise, porque nuevamente 'no puede ser'... debe haber alguna otra razón al margen de la macro.

Sdos

Elsa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas