Onko mahdollista saada johonkin taulukkoon itsestään päivittyvä kellonaika?
aika
mähläm
8409
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Turvaa tilisi vahvistamalla puhelinnumerosi. Voit silloin palauttaa unohtuneen salasanan tekstiviestillä.
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 8
Vanhimmat
käy tuo ketju läpi ja kysäse tarkemmin, jos et saa toimimaan halutulla tavalla
http://keskustelu.suomi24.fi/show.fcgi?category=108&conference=4500000000000708&posting=22000000023224842
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ä.
> ... 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.
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."
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
'*******
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