я знает =) На скорую руку Private Sub Worksheet_Change(ByVal Target As Range) Dim vValDim StrVal As StringDim dDate As Date If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("A2:A10")) Is Nothing Then With Target StrVal = Format(.Text, "000000") If IsNumeric(StrVal) And Len(StrVal) = 6 Then Application.EnableEvents = False dDate = DateValue(Left(StrVal, 2) & "/" & Mid(StrVal, 3, 2) & "/" & Right(StrVal, 2)) .NumberFormat = "dd/mm/yyyy" .Value = CDate(DateSerial(Year(dDate), Month(dDate), Day(dDate))) End If End With End If If Not Intersect(Target, Range("B2:B10")) Is Nothing Then With Target vVal = Format(.Value, "0000") If IsNumeric(vVal) And Len(vVal) = 4 Then Application.EnableEvents = False .Value = Left(vVal, 2) & ":" & Right(vVal, 2) .NumberFormat = "[h]:mm" End If End With End If Application.EnableEvents = TrueEnd Sub