manejo de horas en fórmulas y macros

5 envíos / 0 nuevos
Último envío
jorgambe
Imagen de jorgambe
Offline
última acción: Hace 8 años 1 semana
alta: 21/03/2016 - 00:06
Puntos: 35
manejo de horas en fórmulas y macros

Hola, pertenezco a un grupo de ciclismo de montaña, he hecho una planilla en labque inclui una macro que establece un reloj que se modifica a cada segundo, pero ademas, en otra hoja quise hacer un registro de tiempos, de manera que al ingresar el numero del corredor se registre el tiempo empleado, use una formula que resta a la hora de control la hora establecida como inicio del entrenamiento, pero el resultado no queda fijo, sino que el tiempo sigue avanzando, cómo logro que los tiempos queden fijos y pegar la formula a múltiples celdas, debo eliminar la macro del cronómetro? Gracias

 

Etiquetas: 

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
En vez de utilizar una

En vez de utilizar una fórmula (que, como dices, se recalcula cada vez que cambian los datos), lo que deberías hacer es utilizar una macro que calcule la fórmula y te grabe únicamente el valor en la celda correspondiente.

Un saludo

Jorge (no verificado)
Imagen de Jorge
manejo de horas en fórmulas y macros

Si, entendido, pero cómo llegar al macro, no se de VB lo necesario
gracias 

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Para abrir el marco de

Para abrir el marco de desarrollo VBA pulsa Alt+F11

Ahí entra en la hoja correspondiente con doble click. Abre el desplegable que dice "(General)" y selecciona "Worksheet". Automáticamente se te creará una rutina vacía que responde al cambio de celdas:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

Una vez hecho esto, abre el desplegable de la derecha y selecciona "Change". Se te crea otra rutina vacía muy parecida a la anterior. Ya puedes borrar la de SelectionChange.

Dentro de la rutina Change tienes que poner el código. Yo lo que haría es detectar el cambio de la celda correspondiente y asignar el valor. Por ejemplo, si tienes una lista de corredores en la columna A, deja previsto marcar con una X la columna B. Puedes detectar que cuando se modifica la columna B, en la columna C se marque el tiempo. Pongamos que en C1 esté escrita la hora de salida, y en D1 estés actualizando la hora cada segundo. Podemos hacer lo siguiente:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then  ' si se ha cambiado algo en la columna B
    Cells(Target.Row, 3).Value = Cells(1, 4) - Cells(1, 3)  'realiza el cálculo y lo asigna como valor a la celda de la columna C
    Cells(Target.Row, 3).NumberFormat = "hh:mm:ss"   'Cambia el formato para que se vea como hora:minuto:segundo
End If
End Sub


Un saludo

jorgambe
Imagen de jorgambe
Offline
última acción: Hace 8 años 1 semana
alta: 21/03/2016 - 00:06
Puntos: 35
manejo de joras en formulas

excelente Cron, muchas gracias anduvo genial

Jorge