Planilla control de productividad

20/12/2011 - 21:09 por manolin | Informe spam
¡ Hola al Foro !
Necesito elaborar una planilla de control para que el empleado administrativo coloque su nombre en una celda en la oportunidad en que termina cada trabajo,p.e A1 y que automáticamente quede registrada la hora en que lo hizo en la celda: p.e B1. Utilizo la fórmula lógica (si) que contiene la fórmula "Ahora()". Mi pregunta es: cómo puedo congelar la fórmula "Ahora()" para que no siga actualizando la hora.-
Es decir, son 12 empleados y cada vez que uno pone su nombre en la celda correspondiente a la siguiente línea de la misma columna, pero se actualiza la hora para todas las celdas que contienen la fórmula "Ahora()". Mi pretensión es que la hora que se registre automáticamente para cada uno de ellos, quede congelada. Puedo ocultar la columna donde se registre la hora y protegerla, pero deseo congelar la "hora".-
Para ello utilizo en la celda B1 la siguiente fórmula: =SI(A1<>0;ahora();"")
Gracias. Manuel
 

Leer las respuestas

#1 Benito Merino
20/12/2011 - 22:58 | Informe spam
On 20 dic, 21:09, manolin
wrote:
¡ Hola al Foro !
 Necesito elaborar una planilla de control para que el empleado administrativo
 coloque su nombre en una celda en la oportunidad en que termina cada
trabajo,p.e
 A1 y que automáticamente quede registrada la hora en que lo hizo en la
 celda: p.e B1. Utilizo la fórmula lógica (si) que contiene la
 fórmula "Ahora()". Mi pregunta es: cómo puedo congelar
 la fórmula "Ahora()" para que no siga actualizando la hora.-
 Es decir, son 12 empleados y cada vez que uno pone su nombre en la celda
 correspondiente a la siguiente línea de la misma columna, pero se
 actualiza la hora para todas las celdas que contienen la fórmula
 "Ahora()". Mi pretensión es que la hora que se registre
 automáticamente para cada uno de ellos, quede congelada. Puedo ocultar la
 columna donde se registre la hora y protegerla, pero deseo congelar la
 "hora".-
 Para ello utilizo en la celda B1 la siguiente fórmula:
 =SI(A1<>0;ahora();"")
 Gracias. Manuel



Hola.

Mediante un evento se puede gestionar lo que indicas. Sería el
siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Cell As Range
For Each Cell In Target
With Cell
If .Column = Range("A:A").Column Then
Cells(.Row, "B").Value = Now
End If
End With
Next Cell
End Sub

Este evento lo he obtenido del siguiente link:
http://www.dataschenk.com/Newslette...eStamp.htm

En dicho link te indican cómo incorporar el evento a tu hoja:

1º) {alt}{F11} : acceso al editor de visual basic

2º) Seleccionar el explorador de proyectos (project explorer)

3º) Posicionarse en el proyecto perteneciente al libro sobre el que
queremos realizar el fijado del tiempo

4º) Doble click en el objeto excel que identifica la pestaña en la que
trabajas

5º) Pegar el código

Saludos,

Benito

Preguntas similares