Ajuste de hora recogida el autómata
Buenas tardes,
Perdona que te vuelva a molestar. La semana pasada me sacaste de un apuro con una macro la cual me insertaba ":" en una columna para poner bien las horas, pues un autómata me las arrojaba en la hoja excel de la forma "1145", "1230" etc... Esa macro era la siguiente:
Sub ajuste()
Dim r As Range
Dim f As Integer
f = Application.WorksheetFunction.CountA(Range("A:A"))
If f = 0 Then Exit Sub
Application.ScreenUpdating = False
For Each r In Range("A1" & ":" & "A" & f)
If InStr(1, r.Text, ":") = 0 Then
r = Mid(r, 1, 2) & ":" & Mid(r, 3, 2)
If Len(r.Offset(0, 1)) = 5 Then r.Offset(0, 1) = Mid(r.Offset(0, 1), 2, 2) & "-" & Mid(r.Offset(0, 1), 1, 1) & "-20" & Mid(r.Offset(0, 1), 4, 2))
If Len(r.Offset(0, 1)) = 6 Then r.Offset(0, 1) = Mid(r.Offset(0, 1), 1, 2) & "-" & Mid(r.Offset(0, 1), 3, 2) & "-20" & Mid(r.Offset(0, 1), 5, 2))
End If
Next
Set r = Nothing
Application.ScreenUpdating = True
MsgBox "Formato ajustado", vbInformation
End Sub
Te vuelvo a molestar para comentarte que, contradiciendome a lo que dije en su momento, las horas por debajo de las 10:00 (esto es, las 9:30 por ejemplo) me las arroja con 3 dígitos y no con 4 como yo creí (pensaba que eran 4 porque el autómata así las tiene). ¿Qué sucede? Que para las horas mencionadas, al ejecutar la macro, quedaría así: 930 --> 93:0 en vez de 9:30... ¿podrías ayudarme de nuevo? Antes de molestarte he intentado yo hacer cambios leyéndome en la ayuda las instrucciones... Pero que va, ni de broma... Perdona por no ser más concreto la primera vez.
¿Podrías ayudarme?
Muchas gracias!
Perdona que te vuelva a molestar. La semana pasada me sacaste de un apuro con una macro la cual me insertaba ":" en una columna para poner bien las horas, pues un autómata me las arrojaba en la hoja excel de la forma "1145", "1230" etc... Esa macro era la siguiente:
Sub ajuste()
Dim r As Range
Dim f As Integer
f = Application.WorksheetFunction.CountA(Range("A:A"))
If f = 0 Then Exit Sub
Application.ScreenUpdating = False
For Each r In Range("A1" & ":" & "A" & f)
If InStr(1, r.Text, ":") = 0 Then
r = Mid(r, 1, 2) & ":" & Mid(r, 3, 2)
If Len(r.Offset(0, 1)) = 5 Then r.Offset(0, 1) = Mid(r.Offset(0, 1), 2, 2) & "-" & Mid(r.Offset(0, 1), 1, 1) & "-20" & Mid(r.Offset(0, 1), 4, 2))
If Len(r.Offset(0, 1)) = 6 Then r.Offset(0, 1) = Mid(r.Offset(0, 1), 1, 2) & "-" & Mid(r.Offset(0, 1), 3, 2) & "-20" & Mid(r.Offset(0, 1), 5, 2))
End If
Next
Set r = Nothing
Application.ScreenUpdating = True
MsgBox "Formato ajustado", vbInformation
End Sub
Te vuelvo a molestar para comentarte que, contradiciendome a lo que dije en su momento, las horas por debajo de las 10:00 (esto es, las 9:30 por ejemplo) me las arroja con 3 dígitos y no con 4 como yo creí (pensaba que eran 4 porque el autómata así las tiene). ¿Qué sucede? Que para las horas mencionadas, al ejecutar la macro, quedaría así: 930 --> 93:0 en vez de 9:30... ¿podrías ayudarme de nuevo? Antes de molestarte he intentado yo hacer cambios leyéndome en la ayuda las instrucciones... Pero que va, ni de broma... Perdona por no ser más concreto la primera vez.
¿Podrías ayudarme?
Muchas gracias!
1 respuesta
Respuesta de calvuch
1