Formato hora proveniente de introducir 4 dígitos

He visto como, a través de código visual basic para excel, introduciendo en una celda 4 dígitos, por ejemplo, 1234, al cambiar de celda estos dígitos se convierten en formato hora 12:34, con lo que te ahorras poner los : cada vez que pones una hora.
¿Alguien sabe como hacerlo?

1 respuesta

Respuesta
1
Pegas esta macro en la sección de código de la hoja que quieres que se comporte de esa forma y ya está.
Esta macro valida que lo que se haya ingresado sea un número y que tenga una longitud menor o igual a 4 caracteres, antes de agregar los dos puntos, cumpliendo estas condiciones y no siendo un numero negativo, el valor resultante estará en formato hh:mm.
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim intHs As Integer
    Dim intMs As Integer
    Dim strValor As String
    Target.NumberFormat = "@"
    strValor = IIf(Len(Target.Text) = 1, "0" & Target.Text, Target.Text)
    If IsNumeric(strValor) And Len(strValor) <= 4 Then
        intHs = IIf(Len(strValor) > 2, Left(strValor, Len(strValor) - 2), 0)
        intMs = Right(strValor, 2)
        If intHs >= 0 And intHs <= 23 And intMs <= 59 Then
            Target.Value = Format(intHs, "00") & ":" & Format(intMs, "00")
        End If
    End If
End Sub
Perfecto.
Y si no es mucho molestar, podrías decirme como tendría que modificar el código para que en vez de en toda la hoja, solo se modificara en la columna A (por ejemplo).
Gracias
Para tal efecto debes agregar
If Target.Column <> 1 Then Exit Sub
antes de
Target.NumberFormat = "@"
Y ya está. El 1 indica la primera columna ("A"), de tas forma que si el cambio no ha sido realizado en la primera columna, entonces sale del procedimiento.
Muchas gracias, tanto por la solución, como por la premura de tiempo con que me la has dado. Como habrás visto, no tengo ni idea de visual basic y lo cierto es que me está costando mucho encontrar un buen manual por internet, así que al final tendré que comprarlo porque es muy interesante para aplicarlo a Excel, que es con lo que yo trabajo. De todas formas, existiendo gente como tú, así resulta todo mucho más sencillo.
Muchas gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas