Tengo una hoja de cálculo de Excel configurada como un reloj de tiempo. El empleado abre su archivo de bloqueo de tiempo para la semana y llena la fecha de finalización de la semana en el lugar designado. De aquí en adelante, solo se usa el mouse para la entrada. El empleado selecciona la celda adecuada para el día de la semana y la acción de marcar, ir a almorzar, regresar del almuerzo e ir a casa. Después de colocar el cursor sobre la celda correcta, hacen clic en un botón (un botón vinculado a una macro) que llena la hora correcta para la acción. No puedo encontrar la manera de evitar que solo vayan a la celda que quieren y escriban el tiempo que quieran. Intenté agregar la protección de la celda con una contraseña como parte de la macro del botón, pero no he podido hacer que funcione. ¿Alguien tiene una manera de proteger las células para que el empleado no pueda alterar los tiempos? O, ¿hay una manera más fácil de hacer esto todos juntos?
fuente
Respuestas:
Sus usuarios tienen acceso para escribir en el archivo de Excel ...
No creo que técnicamente se pueda hacer cumplir esto dentro de Excel; Creo que quieres un software alternativo. Aunque admiro tu habilidad con las macros de Excel.
Elaborar:
Esto es distinto del cifrado de celdas, lo que impide incluso leer sin la contraseña.
Creo que hay una gran cantidad de software de tarjeta de tiempo por ahí, y la mayoría de ellos probablemente puede exportar los datos recopilados a Excel. Ampliaría mis horizontes más allá de las hojas de cálculo si estuviera en su posición.
fuente
Puede rechazar los cambios a las celdas mediante un controlador de eventos VBA:
No sé si establecer el valor de las celdas a través de una macro VBA causa este evento para disparar. Sé que no se dispara por los cambios inducidos por las fórmulas. Pero puede definir fácilmente una variable global para permitir que se establezcan cambios Antes de cambiar la celda y desarmarla después.
También podrías tratar de atrapar
Worksheet_SelectionChange
evento, para prevenir el Usuario de posicionar el cursor dentro de la celda. Usted puede por el desestimado las celdas vuelven a colocar el cursor en alguna celda predefinida (como A1), o escriba un código más complicado para recordar la última posición permitida del cursor y reposicionarlo.fuente