View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Per Jessen Per Jessen is offline
external usenet poster
 
Posts: 1,533
Default Worksheet change time format

Hi KiwiGirl

No special format needed.
Check if the cell where the number is entered is intersecting with the
desired range.

Regards,
Per

"KiwiGirl" skrev i meddelelsen
...
Hi Per
Thanks for answering so quickly.
I copied your code and now when I enter 213 for example, I get 0:00:00 in
the cell.
Is there a special format I need to apply also. Currrently at h:mm:ss
Much appreciated.... :-)
KiwiGirl



"Per Jessen" wrote:

Hi KiwiGirl

Try this:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim TimeStr As String

On Error GoTo EndMacro
If Application.Intersect(Target, Range("D3:D41, J3:J41, P3:P41, V3:V41,
AB3:AB41, AH3: AH41 , AN3: AN41 , AT3: AT41 , AZ3: AZ41 , BF3: BF41 ,
BL3:
BL41 , BR3: BR41 , BX3: BX41 , CD3: CD41 , CJ3: CJ41 , CP3: CP41 ,
DB3:
DB41 , DH3: DH41 , DN3: DN41 ")) 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
If Target.Value = "dnf" Or Target.Value = "dns" 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:00:0" & .Value
Case 2 ' e.g., 12 = 00:12 AM
TimeStr = "00:00:" & .Value
Case 3 ' e.g., 735 = 7:35 AM
TimeStr = "00:0" & Left(.Value, 1) & ":" _
& Right(.Value, 2)
Case 4 ' e.g., 1234 = 12:34
TimeStr = "00:" & Left(.Value, 2) & ":" & Right(.Value,
2)
Case 5 ' e.g., 12345 = 1:23:45 NOT 12:03:45
TimeStr = Left(.Value, 1) & ":" & _
Mid(.Value, 2, 2) & ":" & Right(.Value, 2)
Case 6 ' e.g., 123456 = 12:34:56
TimeStr = Left(.Value, 2) & ":" & _
Mid(.Value, 3, 2) & ":" & Right(.Value, 2)
Case Else
.Value = ""
GoTo EndMacro
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
End Sub

Regards,
Per