macro no funciona

4 envíos / 0 nuevos
Último envío
pepa
Imagen de pepa
Offline
última acción: Hace 4 semanas 3 horas
alta: 22/12/2016 - 12:19
Puntos: 295
macro no funciona

buenas noches 

he preparado una macro para que al poner horas en las celdas de la hoja de datos no tenga necesidad de poner los dos puntos y me funciona perfectamente, es decir si pongo 1240 automaticamente lo convierte en 12:40. el problema es cuando tengo que poner horas de un solo digito es decir la1,2,3,4,5,6,7,8,9, me la convierte por ejemplo si pongo las 9:00 la convierte en 18:00 y si pongo la 1:00 la convierte en 10:00 y asi. Adjunto la hoja para ver si podeis ayudarme a encontrar el error pq yo lo doy por perdido ya.

un saludo 

gracias

 

 

 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 días 2 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11105
Cuenta los caracteres

Utiliza la función LEN para saber la longitud de lo que hayas escrito en la celda

Según la longitud haces una cosa u otra

 

------
Ya sé Excel, pero necesito más.

pepa
Imagen de pepa
Offline
última acción: Hace 4 semanas 3 horas
alta: 22/12/2016 - 12:19
Puntos: 295
buenos dias Paco, he

buenos dias Paco, he utilizado LEN y funciona muy bien.

el problema que tengo ahora es que no puedo sumar las horas mensuales pq el resultado no es correcto, ya no se si es po la macro o por las formulas que hay puestas en las celdas de donde vienen los datos a sumar. podrias echarle un vistazo? 

te lo agradeceria un monton, ya que estoy atrancada en este tema y no cosigo dar con la solucion.

 

AdjuntoTamaño
File registro_horas_prueba.xlsm59.5 KB
pacomegia
Imagen de pacomegia
Offline
última acción: Hace 2 días 2 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11105
Sí está sumando, lo que

Sí está sumando, lo que ocurre es que donde sólo son visibles unas horas en realidad también hay un día de más

en tu fórmula donde calculas las horas tienes un +1 que añade un día a tu resultado

=SI(D9=0;" ";(E9-D9)+(G9-F9)+1)

Excel guarda las fechas como un número en el que la parte entera es la fecha (los días) y la parte decimal es la hora

En tu caso ves 9:00 pero internamente tienes un valor de 1 día y 9 horas, es decir 33 horas

Si aplico un formato de número a tus horas mira lo que aparece, la mayoría de los valores son superiores a 1, es decir, tienen 24 horas más de las que parece.

Algunas ideas para evitar esto:

Puedes rehacer la fórmula que calcula las horas para que dé como resultado el número de horas correcto sin ese día de más. cmpara si la hora de inicio es posterior a la de finalización, eso quiere decir que empieza un día y termina otro (turno de noche), aquí sí que habría que añadir 1 a la hora de fin para que considere que es del día siguiente.


Puedes por ejemplo utilizar la función ENTERO para saber cuál es la parte entera de tu número (restando al número la parte entera de ese número te quedará sólo la parte decimal, que son las horas)

Puedes por ejemplo comparar si tu número es o no mayor que uno (supongo que no habrá jornadas de trabajo de más de 24 horas)

 

 

------
Ya sé Excel, pero necesito más.