Formato cúmulo de horas en VBA

Estoy desarrollando una macro donde se tiene que reflejar suma de horas trabajadas y horas paradas. El valor de las sumas me aparecen en dos celdas con el siguiente formato (345:45) formato "[h]:mm" de excel.
Lo que intento hacer es reflejar los valores en un label con ese mismo formato.
Si en el códio de VBA porgo [h]:mm como formato sólo me aparecen los minutos. Si quito los corchetes me aparece 9:45 ya que cuando llega a las 24 horas empieza de cero.
El código que pongo es:
'Totales métrica
Label1630.Caption = Format(.Cells(709, lcol), "h:mm")

1 respuesta

Respuesta
2

Te anexo una opción

    hora = Evaluate("=TEXT(" & .Cells(709, lcol) & ",""[h]"")")
    minutos = Right(Evaluate("=TEXT(" & .Cells(709, lcol) & ",""[h]:mm"")"), 2)
    Label1630.Caption = hora & ":" & minutos

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Hola, gracias por el consejo. Lo probé y me saltaba error. Declaré las variables minutos y hora como Integer y me saltaba el error '13' marcando en amarillo lo siguiente, sabes cuál puede ser el motivo? 

Gracias,

Saludos!

minutos = Right(Evaluate("=TEXT(" & .Cells(709, lcol) & ",""[h]:mm"")"), 2)

¿Y la celda tiene minutos?

¿Y qué dice el mensaje de error?

En VBA no es necesario declarar las variables.

Hola!, el error es el siguiente:

Error '13' en tiempo de ejecución, No coinciden los tipos.

Y marca  en amarillo la parte de los minutos. La celda si tiene minutos, por eso me extraña, el valor de la celda es 345: 45.

Saludos!

Para entender cuál es el problema, tienes que poner toda la información que tienes.

Además del error, tienes que poner en cuál línea de la macro se detiene.

Y como ya te comenté anteriormente, no es necesario declarar las variables en VBA, mejor quita la declaración y prueba nuevamente.

Hola, este es el error y dónde se detiene. Eliminé las declaraciones.

Saludos!

Y qué tienes en la celda (709, ¿lcol)?

En esa celda tienes que tener una hora de excel, si tienes un texto o algo diferente, no se puede convertir a hora, es por eso que te marca el error de "no coinciden los tipos"

Para que te des una idea de lo que debes tener en la celda te muestro mi ejemplo, el cual no tiene problemas. Mi lcol es la columna "C", entonces en la celda C709 tengo 345:45 con el formato de celda [h]:mm, en este caso, tengo una hora de excel:

Exactamente igual que tú. lo he probado con [h]:mm y con [h]:mm:ss, en lugar de horizontal me suma las horas en vertical, pero eso no debería cambiar nada.... No entiendo porque persiste el fallo. Si no lo consigo depurar, lo haré para que se ingresen las horas en números decimales y en el VBA pongo formato de número "Standard" y listo, no?

Envíame tu archivo para revisarlo

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “su pérez” y el título de esta pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas