Option Explicit
Sub ConvertirHeures()
Dim R As Range, T(), L As Long, C As Long
Set R = ActiveSheet.UsedRange
T = R.Value
On Error Resume Next
For L = 1 To UBound(T, 1): For C = 1 To UBound(T, 2)
If VarType(T(L, C)) = vbString Then If T(L, C) _
Like "*:*" Then T(L, C) = TimeValue(T(L, C))
Next C, L
R.Value = T
Set R = Intersect(ActiveSheet.[4:1000000], R)
R.Columns(1).NumberFormat = "hh:mm:ss"
R.Columns(5).NumberFormat = "hh:mm:ss"
R.Columns(7).NumberFormat = "hh:mm:ss"
End Sub