Kyselin tuolla aikaisemmin otsikolla "Aikamuodon kirjoittaminen" kellonajan kirjoittamisesta alueelle E9-H22 niin että aika syötettäisiin ilman kaksoispistettä ja kone automaattisesti lisäisi sen sitten sinnen. Ourait, hienosti pelaa. Mutta kun alueen E9-H22 tyhjentää deletellä tai ihan millä tahansa tavalla, kone alkaa herjailla jotain debug-juttua ja maalaa lauseen
.Value = h / 24 Right(.Value, 2) / 1440
keltaisella.
Eli koodiin varmaan pitäisi lisätä jotain, joka estäisi ohjelman kaatumisen, olisiko tietoa mitä?
.Value = h / 24 Right(.Value, 2) / 1440
keltaisella.
Eli koodiin varmaan pitäisi lisätä jotain, joka estäisi ohjelman kaatumisen, olisiko tietoa mitä?
Vastaukset 1
Vanhimmat
tossa korjattuna koodi
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range, h As Integer
Set r = Intersect(Target, Range("E9:H22"))
If r Is Nothing Then Exit Sub
Set r = r.Cells(1)
If IsNumeric(r) Then
With r
If .Value >= 100 Then h = Left(.Value, Len(.Value) - 2) Else h = 0
Application.EnableEvents = False
If h = 0 Then
Application.EnableEvents = True
Exit Sub
End If
.Value = h / 24 Right(.Value, 2) / 1440
.NumberFormat = "[hh]:mm"
Application.EnableEvents = True
End With
End If
End Sub