Vamos a ver si me explico. Cuando te decía que la parte entera de un numero equivale a los días. Por ejemplo, en este momento en que escribo, las 21:30 realmente es
43726,89672454
La parte entera corresponde a los días transcurridos desde el 01/01/1900 hasta hoy y la parte decimal son las horas minutos, segundos...
Si le dices en una variable, cuadro de texto, lo que sea que el valor es 1,67, el ordenado entiende que le estás diciendo que es un día de 24 horas más 0,67 de día. Por eso multiplico por 24. Por eso salen 40 horas. La parte decimal que queda después de multiplicar todo por 24 son los minutos y segundos, que son los decimales de hora, por eso lo multiplico por 60.
Si tengo el formulario
y pulso el botón donde, simplemente, sin tanto dim etc le pongo
Private Sub Comando19_Click()
Dim num As Single, hh As Byte, nn As Byte
num = 1.67
Resumen = Int(num * 24) & ":" & Format(Int(((num * 24) - Int(num * 24)) * 60), "00")
End Sub
Que diga quien lo diga son las horas y minutos que corresponden a 1,67