Quiero bloquear una fila cuando se activa una macro con fecha y hora

tengo una macro que es sencilla y va de la siguiente manera:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 1 Then
ActiveCell(0, 4).Value = Time
ActiveCell(0, 5).Value = Date
End If

End Sub

esto me ayuda a colocar la fecha en la columna E y la hora en la columna D al ingresar en este caso un numero de empleado, pero al terminar quiero bloquear la fila en donde vayan capturando su numero para que no puedan modificar los datos espero puedan ayudarme, gracias.

Respuesta
1

La instrucción seria:

Activecell.entierros.locked = true

Previamente tendrás que desproteger la hoja (ActiveSheet Unprotect "tu-clave")

y volverla a proteger antes del End Sub.

Sdos

Elsa

Salio mal escrita...

ActiveCell.EntireRow. Locked = True

Sdos!

No reparé en el resto de tu código y veo que mencionas ActiveCell.

Pero no siempre será la 'ActiveCell' la que indique la fila sino en este caso debieras hacer mención a Target.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Then
    ActiveSheet.Unprotect "tu_clave"
    Target.Offset(0, 4).Value = Time
    Target.Offset(0, 5).Value = Date
    Target.EntireRow.Locked = True
    ActiveSheet.Protect "tu_clave"
End If
End Sub

La protección de la hoja es opcional... pero solo se notará bloqueada cuando se proteja. En este caso la col donde ingresas datos no estará bloqueada hasta el momento en que se llene con algún valor colocando fecha y hora en el resto de las celdas.

En este código se bloquea 'la fila' porque así lo solicitaste.

Si todo quedó resuelto no olvides valorar la respuesta.

¿Veo qué la consulta aún sigue pendiente ... hay algo que no se comprendió? ¿No resolvió tu consulta? Si es así podés solicitar aclaraciones.

Si el tema está resuelto, no olvides valorar la respuesta.

Sdos!

muchas gracias antes que nada por la atención, si me funciono solo que a la hora de querer cargar algún número en la columna A ya se queda bloqueada la hoja

Queda protegida... de otro modo no notarás que la celda está bloqueada, se podrá seguir modificando. Así son las reglas del bloqueo, solo tiene efecto en hoja protegida.

De modo predeterminado Excel tiene todas las celdas de una hoja bloqueadas. Entonces lo que tenés que hacer es seleccionar aquellas celdas o rangos donde pueden ingresarse valores (incluyendo las de fecha/hora) y quitarle el tilde a Bloqueo, desde el menú Formato, Proteger.

Luego se proteje la hoja. Y la macro bloquea toda la fila ya que así se solicitó.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas