Cuando ingresa una hora en una celda, Excel ingresa la presencia de los dos puntos entre las partes de la hora y los minutos. Sin embargo, debido a la posición de los dos puntos en el teclado, ingresar dos puntos por cada valor de tiempo que ingrese puede ralentizarlo, especialmente si tiene bastantes valores de tiempo para ingresar.

Por esta razón, es posible que se pregunte si hay una manera de omitir el ingreso de dos puntos y hacer que se ingresen automáticamente o todos a la vez.

Ingresarlos automáticamente requiere un poco más de trabajo, requiriendo el uso de una macro, y se tratará en breve. Ingresar los dos puntos de una vez se puede hacer con una fórmula, como en la siguiente:

=TIMEVALUE(REPLACE(A1,3,0,":"))

Esta fórmula asume que el valor de tiempo (sin dos puntos) está en la celda A1 y que está compuesto por cuatro dígitos. Por lo tanto, si la celda A1 contiene un valor como 1422, la fórmula devuelve 14:22 como valor de tiempo real. (Es posible que deba formatear la celda como un valor de tiempo).

Si su celda de entrada original puede contener una hora que usa solo tres dígitos, como 813 en lugar de 0813, entonces necesita usar una fórmula ligeramente diferente:

=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),0)

Si prefiere que la inserción de los dos puntos se realice automáticamente, puede utilizar una macro. Puede crear una macro que examinará un rango de celdas en las que planea agregar fechas a la hoja de trabajo y luego insertar los dos puntos en la entrada. Esto se hace creando una macro que es activada por el evento SheetChange. La siguiente macro es una de ellas:

Private Sub Workbook_SheetChange(ByVal Sh As Object, _   ByVal Target As Excel.Range)

Dim TimeStr As String

On Error GoTo EndMacro     If Application.Intersect(Target, Range("C7:D15")) Is Nothing Then         Exit Sub     End If     If Target.Cells.Count > 1 Then         Exit Sub     End If     If Target.Value = "" Then         Exit Sub     End If

Application.EnableEvents = False     With Target         If .HasFormula = False Then             Select Case Len(.Value)

Case 1 ' e.g., 1 = 00:01 AM                     TimeStr = "00:0" & .Value                 Case 2 ' e.g., 12 = 00:12 AM                     TimeStr = "00:" & .Value                 Case 3 ' e.g., 735 = 7:35 AM                     TimeStr = Left(.Value, 1) & ":" & _                     Right(.Value, 2)

Case 4 ' e.g., 1234 = 12:34                     TimeStr = Left(.Value, 2) & ":" & _                     Right(.Value, 2)

Case Else                     Err.Raise 0             End Select             .Value = TimeValue(TimeStr)

End If     End With     Application.EnableEvents = True

Exit Sub

EndMacro:

MsgBox "You did not enter a valid time"

Application.EnableEvents = True     ActiveCell.Offset(-1, 0).Select End Sub

Lo primero que hace la macro es verificar si los datos recién ingresados ​​estaban en el rango C7: D15. Si no fue así, la macro sale. También verifica para asegurarse de que solo haya una celda seleccionada y que la celda no esté vacía. Si se cumplen todos estos criterios, la macro verifica la longitud del valor en la celda y lo rellena con ceros iniciales, según sea necesario. Esta macro se basa en una macro que se encuentra en el sitio de Chip Pearson, aquí:

http://cpearson.com/excel/DateTimeEntry.htm

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (2412) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

link: / excelribbon-Entering_or_Importing_Times_without_Colons [Ingresando o importando tiempos sin dos puntos].