Kunde ja muut vba-nerot!

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ä?
1396
Äänestä

Muut lukivat myös

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

Äänestä

Kommentoi aloitusta


Miia kirjoitti:

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ä?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu