aika

Onko mahdollista saada johonkin taulukkoon itsestään päivittyvä kellonaika?
8409
Äänestä

Muut lukivat myös

Vastaukset 8

Vanhimmat
  • Miten tuon "nyt" funktion saisi niin että siihen ei tulisi tuota päivämäärää... en ymmärtäny oikein tuota ohjetta.

    Äänestä

  • mutta ei kirjoitti:

    Miten tuon "nyt" funktion saisi niin että siihen ei tulisi tuota päivämäärää... en ymmärtäny oikein tuota ohjetta.

    Valitse soluun muotoilu, jossa on vain kellonaika näkyvissä.

    Äänestä

  • mutta ei kirjoitti:

    Miten tuon "nyt" funktion saisi niin että siihen ei tulisi tuota päivämäärää... en ymmärtäny oikein tuota ohjetta.

    > ... en ymmärtäny oikein tuota ohjetta.

    Tuolle excel ohjelma oliolle on varattu yksi muistipaikka johon voit laittaa ajan ja kutsuttavan makron nimen. Tätä makroa sitten kutsutaan tuohon kellonaikaan yhden kerran tai sitten halutessa uudelleen seuraavana päivänä samaan kellonaikaan.

    Huomaa että tuo muisti paikka on excel oliossa joten se yksi muistipaikka koskee kaikkia taulukoita, joten ei kannata käyttää tuota muuten kuin jos se on välttämätöntä ( jos useista taulukoista asetetaan aika ja makro, uusi aika tulee edellisen päälle, joten vain viimeinen on muistissa).

    Jos haluttua makro (kirjoita kellonaika ), ajetaan seuraavan kerran vasta 24 tunnin kuluttua niin tuohan ei sinäänsä käy kellosta. Mutta voit kutsua tuota makroa uudelleen vaikka 10 minuutin kuluttua, jolloin edellinen aika pyyhitään pois ja uusi aika onkin 10 minuutin kuluttua. Tuo 10 minuuttia ei tietenkään vielä riitä kellolle, mutta jos kutsut makroa yhden sekuntin välein ja makro kirjoittaa taulukkoon kellonaijan niin silloinhan tuo voisi käydä sinulle kelloksi.

    Eli

    Sub kirjoitaKellonaika()

    If Sheet1.Range("B2") > 0 Then
    Sheet1.Range("B2").Value = Now
    Application.OnTime Now TimeValue("00:00:01"), "kirjoitaKellonaika", False
    End If

    End Sub

    Tässä on makro joka kirjoittaa kellon ajan taulukkoon "Sheet1" ja "B2" soluun, sitten asetetaan uusi OnTime aika ja kutsutaan uudeleen saman nimistä makroa.

    Tuon ongelma on se että jos kutsut tuota yhden kerran se kutsuu itseään uudeleen 1 sekuntin kuluttua eikä lopeta ollenkaan itseensä kutsumista.

    Olen ratkaisut ton tähän niin että mikäli solussa on aika niin kutsuja jatketaan ja jos solussa ei ole aikaa ( aika = 0 ) niin kutsua ei tehdä uudelleen.

    Nyt vielä joku systeemin jotta tuon kutsun voi lopettaa joskus ( asettamalla ajaksi 0) , parasta varmaan olisi laitta joku nappula josta painamalla aloitat ajan kirjoittamisen ja lopetet sen kirjoittamisen ( asettaa ajaksi 0).

    Eli kaikki yhteen ( tämä on windows versio, mac ei hyväksy tyhjiä argumenttejä, joten mac:lle otetaan tyhjä argumentti pois)


    Sub kirjoitaKellonaika()
    If Sheet1.Range("B2") > 0 Then
    Sheet1.Range("B2").Value = Now
    Application.OnTime Now TimeValue("00:00:01"), "kirjoitaKellonaika",,False
    End If

    End Sub



    Sub Button1_Click()

    If Sheet1.Range("B2") > 0 Then
    Sheet1.Range("B2").Value = 0
    Sheet1.Range("B2").Select
    Else
    Sheet1.Range("B2").Value = Now
    kirjoitaKellonaika
    End If

    End Sub

    Ja sitten se edellisenkirjoittajan vihje "Valitse soluun muotoilu, jossa on vain kellonaika näkyvissä."

    Ja jos et tarvi sekunteja niin laita paivitys minuutin välein, ei tuhlaa aikaa turhiin kutsuihin.

    Äänestä

  • LainaKäsi kirjoitti:

    Valitse soluun muotoilu, jossa on vain kellonaika näkyvissä.

    Niin ja kannattaa valita joku excelin valmis muotoilu, "Time" listasta valitaan se valmis "tt:mm:ss", nyt muotoilu pysyy halutussa, vaikka makrossa asetetaan uusi aika.

    Ainakin minulla käy niin, jos valitsen "custom" ja laitan käsin "tt:mm:ss" niin excel muutta tuon muotoilun takaisin oletukseksi, jos makrossa laitetaan uusi aika.

    Näinhän se sanotaan ohjeissa

    "If you set the value or formula of a cell to a date, Microsoft Excel checks to see whether that cell is already formatted with one of the date or time number formats. If not, Microsoft Excel changes the number format to the default short date number format."

    Äänestä

Vanhasta varastosta löysin koodinpätkän, jonka olen kopsannut muistaakseni osoitteesta http://www.kentexcel.com/ - suosittelen sivuja muutenkin. Vai olikohan http://www.xldennis.se/ - joka on myös mainio.

'********
'Starta klockan
Option Explicit

Public KörNär As Double
'------------------------------------------
Sub StartaKlockan()
With Range("A1")
.Value = Now
.NumberFormat = "hh:mm:ss"
End With

'Här tilldelas den publika variabeln ett tidsvärde
KörNär = Now TimeSerial(0, 0, 1)

'Här anropas UppdateraKlockan
Application.OnTime earliesttime:=KörNär, _
procedure:="UppdateraKlockan", schedule:=True
End Sub

'Uppdatera klockan:
Sub UppdateraKlockan()
With Range("A1")
.Value = Now
.NumberFormat = "hh:mm:ss"
End With

KörNär = Now TimeSerial(0, 0, 1)

Application.OnTime earliesttime:=KörNär, _
procedure:="UppdateraKlockan", schedule:=True
End Sub

'Stoppa klockan:
Sub StoppaKlockan()
'Genom att tilldela parametern "schedule" värdet Falskt så
'stoppas klockan.
Application.OnTime earliesttime:=KörNär, _
procedure:="UppdateraKlockan", schedule:=False
End Sub

'*******

Äänestä
  • hyvät linkit, sinun mielestäsi...
    minulle ja monelle muulle niissä vain on väärä kieli, eli ei mitään hyötyä...

    Äänestä

  • ihan kirjoitti:

    hyvät linkit, sinun mielestäsi...
    minulle ja monelle muulle niissä vain on väärä kieli, eli ei mitään hyötyä...

    Itse asiaan palatakseni alla väännettyä koodia, minkä pitäisi auttaa ongelmaasi. Tuon kun tuuppaa moduliin niin pitäisi toimia.

    Ei viitsi alkaa jauhamaan tuota kieliasiaa mutta olen sitä mieltä, että linkit on hyvät ja kielten opiskelu kannattaa aina - oli se mikä kieli tahansa, enkä edusta äidinkieleltäni Suomessa puhuttavaa vähemmistökieltä.


    Option Explicit
    Public Milloin As Double

    Sub KäynnistäKello()
    With Range("A1")
    .Value = Now
    .NumberFormat = "hh:mm:ss"
    End With

    Milloin = Now TimeSerial(0, 0, 1)
    Application.OnTime earliesttime:=Milloin, _
    procedure:="PäivitäKello", schedule:=True
    End Sub

    Sub PäivitäKello()
    With Range("A1")
    .Value = Now
    .NumberFormat = "hh:mm:ss"
    End With

    Milloin = Now TimeSerial(0, 0, 1)

    Application.OnTime earliesttime:=Milloin, _
    procedure:="PäivitäKello", schedule:=True
    End Sub

    Sub PysäytäKello()
    Application.OnTime earliesttime:=Milloin, _
    procedure:="PäivitäKello", schedule:=False
    End Sub

    Äänestä

Kommentoi aloitusta


mähläm kirjoitti:

Onko mahdollista saada johonkin taulukkoon itsestään päivittyvä kellonaika?

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