Excel - ayuda !!! macro fecha automática da error 1004 ...

 
Vista:
sin imagen de perfil

ayuda !!! macro fecha automática da error 1004 ...

Publicado por claudio (1 intervención) el 20/11/2014 16:13:52
hola les cuento, tengo un excel en el que al ingresar un dato en la columna "A" de cada fila en las columnas G y H respectivamente me deben aparecer la fecha y la hora en que se cargo y deben quedar así registradas.
para esto ultimo use esta macro:

1
2
3
4
5
6
Private Sub Worksheet_Change(ByVal Target As Range)
   If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
   Range("G" & Target.Row) = Date
   Range("H" & Target.Row) = Format(Now, "hh:mm")
   End If
End Sub

ahora , estas celdas G y H deben estar bloqueadas para que el usuario no las modifique.

el problema se suscita cuando protejo la hoja dejando estas celdas bloqueadas, ya que al realizar la carga en la celda A salta un error 1004 en tiempo de ejecución, cuando pongo depurar me aparece así la macro, solo aparece la fecha en la celda G y no aparece nada en la celda H

1
2
3
4
5
6
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A:A")) Is Nothing Then
    Range("G" & Target.Row) = Date  (en amarillo)
    Range("H" & Target.Row) = Format(Now, "hh:mm")
    End If
End Sub

la verdad que no se me ocurre como solucionarlo, debe ser una pavada pero no caso una.


espero ayuda.. GRACIAS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de LAO

ayuda !!! macro fecha automática da error 1004 ...

Publicado por LAO (67 intervenciones) el 21/11/2014 19:30:09
Hola Claudio:

Asigna un segmento de protección y desprotección controlado combinado con el código que ya tienes:

Private Sub Worksheet_Change(ByVal Target As Range)

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

'genera desproteccion en hoja activa
ActiveSheet.Unprotect ("tupassword")

Range("G" & Target.Row) = Date
Range("H" & Target.Row) = Format(Now, "hh:mm")

'genera proteccion en hoja activa
ActiveSheet.Protect Password:="tupassword", DrawingObjects:=True, Contents:=True, Scenarios:=True, _
AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True


End If

End Sub

La protección y la desprotección los puedes convertir en funciones si así lo deseas para que puedas utilizarlos en las hojas que desees.

Un saludo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar