Onko mahdollista 800=8:00

On sellainen kysymys et onko mahdollista kirjoittaa kellonaika helpommin soluun. Esim. näin et kun kirjoitan soluun 830 niin sinne ilmeistyis automaattisesti 8:30.
11757
Äänestä

Muut lukivat myös

Vastaukset 11

Vanhimmat

En tiedä miten tuon pystyisi tehdä samaan soluun.

Kenties VBA:lla kun valitset tiettyjä soluja niin VBA kysyy ne inputBox:lla ja kirjoittaa vastauksen soluun suoraan oikeassa muodossa, silloin ei kyllä kirjoiteta soluun suoraan.

Mutta jos voit kirjoittaa vaikka B18 soluun tuon 830 ja vastauksen toiseen soluun vaikka C18, voit käyttää:

=TIME(INT(B18/100); ((B18/100)-INT(B18/100))*100; 0)
ja muotoiluksi tuolle t:mm, testasin tuon

niin ja suomeksi tuo on varmaan, ei testattu:
=AIKA(KOKONAISLUKU(B18/100); ((B18/100)-KOKONAISLUKU(B18/100))*100; 0)


mielen kiintoista olisi jos joku tietää miten tuon saa samaan soluun

Äänestä
  • Jos solu on aikasoluksi määritetty?

    Äänestä

  • Kyl se toimii! Ihan OK. Mut nyt tuli sellainen kysymys et kun lasken 8:00 ja 12:30 eron niin se ero on 4:30. Mitä jos haluaisin sen 4:30 muuttaa 4,5h (tai 4:45 = 4,75h jne.).

    Äänestä

  • Mene automaattisesti kirjoitti:

    Jos solu on aikasoluksi määritetty?

    kokeilin monellatavalla, en saanut toimimaan tuota suoraan soluun johon kirjoitetaan esim 830

    Äänestä

  • hosu kirjoitti:

    Kyl se toimii! Ihan OK. Mut nyt tuli sellainen kysymys et kun lasken 8:00 ja 12:30 eron niin se ero on 4:30. Mitä jos haluaisin sen 4:30 muuttaa 4,5h (tai 4:45 = 4,75h jne.).

    Mites jos kerrot tuon 24:llä ja muotoiluksi kaksi desimaalia

    esim: =(A2-A1)*24

    Äänestä

  • Viime vuonna vastasin tommoseen kyseleen ja tein VBA makron- en jaksa nyt alkaa kaivelemaan

    Äänestä

  • kunde kirjoitti:

    Viime vuonna vastasin tommoseen kyseleen ja tein VBA makron- en jaksa nyt alkaa kaivelemaan

    Muutaman yrityksen ja erehdyksen jälkeen sain tällaisen toimiin hyvin.

    Siinä on muutama tarkistus, esim minulla jäi eka pari kertaa pälle " Application.EnableEvents = False" kun kirjoitin eka kaavan vähän väärin (esim 0,6 pitikin olla 0.6), no joka tapauksessa tuosta se ei toipunut ennen kuin sulki koko excelin ja sitten avasi uudelleen, lisätköön muut parannuksia tarpeen mukaan.



    Private Sub Worksheet_Change(ByVal Target As Excel.Range)

    If Target.Cells.Count > 1 Or Target.HasFormula Then Exit Sub

    If Not Intersect(Target, Range("tarkistaTunnit")) Is Nothing Then

    On Error Resume Next
    Application.EnableEvents = False

    Target = (Int(Target / 100) (((Target / 100) - Int(Target / 100)) / 0.6)) / 24

    Application.EnableEvents = True

    End If

    End Sub

    Äänestä

  • Nimimerkki kirjoitti:

    Muutaman yrityksen ja erehdyksen jälkeen sain tällaisen toimiin hyvin.

    Siinä on muutama tarkistus, esim minulla jäi eka pari kertaa pälle " Application.EnableEvents = False" kun kirjoitin eka kaavan vähän väärin (esim 0,6 pitikin olla 0.6), no joka tapauksessa tuosta se ei toipunut ennen kuin sulki koko excelin ja sitten avasi uudelleen, lisätköön muut parannuksia tarpeen mukaan.



    Private Sub Worksheet_Change(ByVal Target As Excel.Range)

    If Target.Cells.Count > 1 Or Target.HasFormula Then Exit Sub

    If Not Intersect(Target, Range("tarkistaTunnit")) Is Nothing Then

    On Error Resume Next
    Application.EnableEvents = False

    Target = (Int(Target / 100) (((Target / 100) - Int(Target / 100)) / 0.6)) / 24

    Application.EnableEvents = True

    End If

    End Sub

    Tarkennetaan että tuossa käytetään nimettyä aluetta "tarkistaTunnit" tuo alue pitää ensin nimetä taulukkoon tarpeen mukaan esin yksi solu tai muutama solu tai jos tunnit lista muodossa niin koko sarake sille nimelle.

    Itse asiassa tuohhon voisi lisätä tarkistuksen tuosta nimestä ja huomautuksen jos sellaista nimeä ei ole.

    Äänestä

  • Nimimerkki kirjoitti:

    Muutaman yrityksen ja erehdyksen jälkeen sain tällaisen toimiin hyvin.

    Siinä on muutama tarkistus, esim minulla jäi eka pari kertaa pälle " Application.EnableEvents = False" kun kirjoitin eka kaavan vähän väärin (esim 0,6 pitikin olla 0.6), no joka tapauksessa tuosta se ei toipunut ennen kuin sulki koko excelin ja sitten avasi uudelleen, lisätköön muut parannuksia tarpeen mukaan.



    Private Sub Worksheet_Change(ByVal Target As Excel.Range)

    If Target.Cells.Count > 1 Or Target.HasFormula Then Exit Sub

    If Not Intersect(Target, Range("tarkistaTunnit")) Is Nothing Then

    On Error Resume Next
    Application.EnableEvents = False

    Target = (Int(Target / 100) (((Target / 100) - Int(Target / 100)) / 0.6)) / 24

    Application.EnableEvents = True

    End If

    End Sub

    Jep-jep. Nyt menee vähän monimutkaiseks. Pitäis varmaan ensin osata tehdä makroja ja pelaa sen VBA-n kans. Olen tähän mennes funktioihin ja kaavoihin tyytyny mut se ois ihan kivaa jos osais tommoisia juttuja. Yritän jostain saada lisää kokemusta. Ja onko noi jutut nyt suomenkieliseen excelin kans toimivia?

    Äänestä

  • hosu kirjoitti:

    Jep-jep. Nyt menee vähän monimutkaiseks. Pitäis varmaan ensin osata tehdä makroja ja pelaa sen VBA-n kans. Olen tähän mennes funktioihin ja kaavoihin tyytyny mut se ois ihan kivaa jos osais tommoisia juttuja. Yritän jostain saada lisää kokemusta. Ja onko noi jutut nyt suomenkieliseen excelin kans toimivia?

    Format Cells -> välilehti: Number -> category: Custom

    Kirjoita "Type" kenttään:

    0\:00

    Nyt kun kirjoitat soluun esim 800, siinä lukee 8:00

    Äänestä

  • FunkyFunktio kirjoitti:

    Format Cells -> välilehti: Number -> category: Custom

    Kirjoita "Type" kenttään:

    0\:00

    Nyt kun kirjoitat soluun esim 800, siinä lukee 8:00

    Näin muotoillun solun arvot ovat tekstiä, etkä voi suoraa laskea tunteja tai minuutteja suhteessa toisiin soluihin, itse käytän tätä muotoilua kun kirjoittelen raportteihin kellon aikoja. Kätevää jos niitä on paljon, esim "Time log" tyyppisessä listassa.

    Äänestä

Kommentoi aloitusta


hosu kirjoitti:

On sellainen kysymys et onko mahdollista kirjoittaa kellonaika helpommin soluun. Esim. näin et kun kirjoitan soluun 830 niin sinne ilmeistyis automaattisesti 8:30.

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