¿Cómo puedo escribir la hora en una macro de Excel sin utilizar los dos puntos?

Es que yo tengo el mismo problema y he probado tu macro pero no me acaba de funcionar correctamente.
Las horas que tengo que introducir están en este rango B11:E41, lo demás son calculo de restas sumas y fórmulas condicionales para calcular minutos de diferencia.
Por favor, dime que código le tengo que meter para poder introducir las horas en estos rangos sin los dos puntos.
Ademas tenia un problema con tu macro, si escribía 1305 si que era 13:05 para para escribir 8:00 no hay manera.

1 respuesta

Respuesta
1
Puedes explicar un poco más tu pregunta
En el Rango B11:¿E41 qué valores guardas? ¿Puedes pasar un ejemplo?
En el rango B11:E41 es donde tengo que introducir las horas que han fichado, digamos que mi programa es para calcular las horas trabajadas por cada trabajador.
¿Si quieres te lo paso pero dime como? Dime tu mail o algo
Gracias.
Jmoli001 hotmail
La opción más rápida que pienso
Ya que creo/sé que no se puede poner entrada de datos en Excel (mascara com sí en Access)
Es en vez de poner en formato hh:mm ponerlo en formato de número 9,99
y en las fórmulas de la derecha convertirlo en horas
O añadir quatro columnas para introducir los datos i la izquierda del rango de las fechas
1,5 => 1 hora : 50 minutos =TEXTO(ENTERO(F49) & ":" &((F49-ENTERO(F49))*100);"hh:mm")
( Si pones 1,70 => 2,10 podrías hacer un formato condicional para ver que datos has entrado mal o modificar la fórmula para comprobar si F49-ENTERO(F49)*100 es mayor a 59 )
1,5 => 1 hora : 30 minutos
=TEXTO(F49/24;"hh:mm")
Si no quieres poner el . de decimal se puede modificar la fórmula para siempre entrar los dos decimales.
¿Qué querías decir con eso de la macro?
El tema es que para el usuario sea lo más fácil posible, y intentar no poner más conlumnas, ya que después se ha de imprimir como esta ai.
¿Lo de la mascara de entrada como seria el tema?
¿Y lo de la macro que te pasado sabes como se podría hacer? ¿O cómo le puedo preguntar al que lo ha escrito esto? En todoexpertos.
Gracias por todo
No la mascara no sé si se puede hacer en Excel, bueno nunca lo he hecho, no lo he visto, lo he buscado y no lo he encontrado.
Y lo de modificar la macro dejame unas hora
Ok, ya me dices algo de la macro. Gracias.
El cambio que jo haría en la macro que me has enviado es.
El usuari pondia 9,99 y la macro lo passaria de esta forma en hora:minutos
la parte entera seria horas la parte decimal del número serian los minutos. Ejemplos
Entrada (formato decimal)=> Resultado (formato hh:mm)
13,03 <span style="white-space: pre;"> </span>=> 13:03
1 <span style="white-space: pre;"> </span>=> 1:00
,3 <span style="white-space: pre;"> </span>=> 0:30
<span style="white-space:pre"> Dim valor As Double
Dim horas As Integer
Dim minutos As Integer</span> 
<span style="white-space:pre"> </span>...
<span style="white-space:pre"> </span>horas = Int(valor)
    <span style="white-space:pre"> </span>minutos = (valor - horas) * 100
    <span style="white-space:pre"> </span>celda = horas & ":" & minutos
la parte que se tiene que quietar es :
<span style="white-space:pre"> </span>Dim horas As String
<span style="white-space:pre"> </span>Dim minutos As String
<span style="white-space: pre;"> </span>...
<span style="white-space:pre"> horas = Left(celda, 2) </span>
<span style="white-space:pre"> minutos = Right(celda, 2)</span>
<span style="white-space:pre"> celda = horas & ":" & minutos</span> 
A ver si ahora te va bien.
Esto del formato en este foro falla
El cambio que jo haría en la macro que me has enviado es.
El usuario pondría 9,99 y la macro lo pasaría de esta forma en hora:minutos
la parte entera seria horas la parte decimal del número serian los minutos. Ejemplos
Entrada (formato decimal)=> Resultado (formato hh:mm) 
13,03 => 13:03 
1 => 1:00 
,3 => 0:30 
Que se debe poner en la macro para que funcione:
Dim valor As Double 
Dim horas As Integer 
Dim minutos As Integer  
... 
horas = Int(valor) 
    minutos = (valor - horas) * 100 
    celda = horas & ":" & minutos 
la parte que se tiene que modificar es : 
Dim horas As String 
Dim minutos As String 
... 
horas = Left(celda, 2)  
minutos = Right(celda, 2) 
celda = horas & ":" & minutos
A ver si ahora te va bien.
Perdona pero no he entendido muy bien, ¿en alt+f11 que tengo que copiar exactamente para que en las celdas b11-e41 no tenga que introducir los dos puntos? Y perdón por mi inexperencia en código vba
Creo que tu me pasaste una macro donde no hacia falta poner los dos puntos ":" para coger la parte de horas y minutos
Esta macro lo que hacia es coger los dos caractes de la izquierda para hora y los dos de la derecha para minutos, esto lo que hacia era que si el número era 900 para horas cogía 90 y minutos 00. En fin que no funcionaba del todo bien.
Lo que yo plantee es que el usuari ponga 9,00 y la macro se encargué de coger la parte izquierda de la coma o sea la parte entera para las horas =int(valor) y la parte derecha para los minutos o la parte decimal = (valor - horas), y lo multiplicamos por 100 para que sea parte entera
Al final solo falta poner el valor de Celda .
Espero haberte ajudado, para cualquier a aclaración ya sabes donde encontrarme

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas