Kun Nyt-funktio vaihtaa hetken määritellyn rajan yli, tapahtuu laskenta. F9- näpäyksellä saa ajan muuttumisen näkymään koskematta soluihin, mutta nyt tarvittaisiin tilanteen ajantasalle saaminen koskematta tietokoneeseen:
Excel käynnissä, kello raksuttaa, solussa aika etenee vaikka ei paineta F9, ja sitten kun klo menee yli rajan, tapahtuu jos-funktioon määrätyt laskennat.
Mitkä makrokomennot tekisivät tämän Nyt-funktion ajan tasalla pysymisen ilman F9 näpäystä?
Laskentapäivitys heti makrolla, miten?
17
400
Vastaukset 17
- Mr. VBA
Moi, laita Excel käynnistämään makro automaattisesti haluamanasi raja-aikana.
reaaliajassa toimiva kello voi viedä turhaan tehoja koneesta.
ThisWorkbook kohtaan seuraava:
Private Sub Workbook_Open()
'solussa A1 haluttu alkamisaika makrolle nimeltä Päämakro
'voi laittaa myös suoraan sulkeisiin ajan muodossa TimeValue("13:15:00")
On Error Resume Next
Dim Aika As Date
Aika = Range("A1").Value
Application.OnTime TimeValue(Aika), "PääMakro"
End Sub
ja moduuliin esim.
Sub PääMakro()
MsgBox "aloitetaan laskenta"
' tähän koodia
End Sub- Autopäivitys
Kiitos, Mr VBA, tutkiskelen, opiskelen ohjettasi
jos tallennatkin jonkun muun kuin sun ajatuksissasi olleen taulukon ollessa aktiivinen, niin mitäs tapahtuu seuraavalla kerralla kun avaat ExCELin... ;-)
ei hjuva
Keep EXCELing
@Kunde
- Mr. VBA
Moi, laita vielä alla oleva lisäys mukaan, jotta makro ei käynnisty myöhemmin automaattisesti itsekseen työkirjan sulkemisen jälkeen (=tämä voi muutoin tapahtua, jos olet sulkenut työkirjan ennen kuin ajastettu makro on suoritettu)
ThisWorkbook kohtaan seuraava:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Dim Aika As Date
Aika = Range("A1").Value
Application.OnTime TimeValue(Aika), "PääMakro", , False
End Sub - Mr. VBA
Moi Kunde, ei mitään. Kerrotko tarkemmin mitä sinulla tapahtui ?
"Moi Kunde, ei mitään."
Aivan oikein! Ei tapahdu mitään
Aika = Range("A1").Value
jos oletuksena oli vaikka Taul1 ja siellä toi arvo haetaan, toimiii niin kauan oikein kun olet tallentanut EXCELin Taul1 ollessa aktiivinen. Jos sen sijaan tallennat esim. Taul2 ollessa aktiivinen, ei toimi koska A1 arvo luetaan aktiivisesta taulukosta ja todennäköisesti muissa taulukoissa ei ole tota aikaa A1:ssa
ymmärsitkö pointtini?
Keep EXCELing
@Kunde
- Mr. VBA
Moi, tuo ongelma pois kun laittaa alla olevan aikaisemman sijaan:
ThisWorkbook kohtaan seuraava:
Private Sub Workbook_Open()
'ensimmäisellä välilehdellä solussa A1 haluttu alkamisaika makrolle nimeltä Päämakro
'voi laittaa myös suoraan sulkeisiin ajan muodossa TimeValue("13:15:00")
On Error Resume Next
Dim Aika As Date
Aika = ActiveWorkbook.Sheets(1).Range("A1").Value
Application.OnTime TimeValue(Aika), "PääMakro"
End Sub
Ymmärsin ensimmäisen viestisi kyllä aivan erilailla.. - Mr. VBA
vielä ThisWorkbook kohtaan sama tarina, ettei itsekseen käynnistele:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Dim Aika As Date
Aika = ActiveWorkbook.Sheets(1).Range("A1").Value
Application.OnTime TimeValue(Aika), "PääMakro", , False
End Sub
Pääseekö näillä eteenpäin "Autopäivitys" ?- Autopäivitys
Vähän tökkii eli testimakro ei käynnisty automaattisesti. Missäköhän mulla on virhe:
Soluun A1 laitan ajan muodossa pv ja klo, siis:
30.4.2013 9:39:00
Vbasicissa kohdassa: Tämä työkirja:
Private Sub Workbook_Open()
'solussa A1 haluttu alkamisaika makrolle nimeltä tietoa
'Application.OnTime TimeValue(Aika), "Tietoa"
On Error Resume Next
Dim Aika As Date
Aika = Range("A1").Value
Application.OnTime DateValue(Aika), "Tietoa"
End Sub
Moduliin laitettuna:
Sub Tietoa()
'
' tekstiä_E_H_alueelle Makro
Range("E5:H24").Select
Selection.FormulaR1C1 = "Tekstiä"
End Sub
Tilanne tarkemmin:
Kone ja tiedosto ja välilehti koko ajan käynnissä, kyseessä näyttöruutu työntekijöille
- Mr.VBA
Moi, Ajastuksen aktivoi tässä aina tiedoston avaaminen, eli avaus pitää tehdä aina aluksi. Koodista sen verran, että DateValue pitää olla TimeValue. Alla yhteenvetona koodia. Miten nyt toimii ?
ThisWorkbook kohtaan:
Private Sub Workbook_Open()
On Error Resume Next
Dim Aika As Date
Aika = ActiveWorkbook.Sheets(1).Range("A1").Value
Application.OnTime TimeValue(Aika), "Tietoa"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Dim Aika As Date
Aika = ActiveWorkbook.Sheets(1).Range("A1").Value
Application.OnTime TimeValue(Aika), "Tietoa", , False
End Sub
Moduuliin:
Sub Tietoa()
' tekstiä_E_H_alueelle Makro
Range("E5:H24").Select
Selection.FormulaR1C1 = "Tekstiä"
End Sub Voin kyllä ilman testausta sanoa, että Mr.VBAn koodi ei toimi kuin kerran ja siis ja vain kun avataan tiedosto. Ja toimii silloinkin vain jos avauksessa solussa oleva aika on "tulevaisuudessa"
Toisaalta kysymyshän oli miten korvata F9 napin painallus, jos solussa aika muuttuu ja raja ylittyy
ihan piece of case, mutta katsotaan miten Mr.VBA ratkaisee hommat...
jos ei onnaa, niin ehkäpä Kunde auttaa...
muuten HYVÄÄ VAPPUA KAIKILLE etenkin mun foorumin lukijoille!
KEEP EXCELing
@Kunde- Mr.VBA
Moi, tiedosto tarvitsee avata vain kerran. Kannattaa kunde testata. Ajattelin aikaisemmin työntekijää, joka tulee ysiltä töihin ja avaa koneen ja tiedoston ja sulkee koneen viideltä. Mutta jos tiedosto kokoajan siis auki, niin toimii joka vuorokausi samaan aikaan vaikka A1 pvm formaatti olisi 1950-luvulla. Kelloaika merkitsee;)
Mutta ..tässä kuitenkin koodia aikaisemman sijasta ja makro, jossa haluttu aloitus-aika. Tiedosto auki ja kellonaika moduuli vaan päälle. testauskommentit ?
ThisWorkbook kohtaan:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim LisääAikaa As Date
LisääAikaa = TimeValue("00:00:01") Now
On Error Resume Next
Application.OnTime LisääAikaa, "KellonAika", , False
End Sub
Moduuleihin:
Sub KellonAika()
Dim LisääAikaa As Date
Dim Käyntiin As Date
'alle haluttu käynnistys-aika joka vuorokausi
Käyntiin = ("23:59:59")
ActiveWorkbook.Sheets(1).Range("A1").Value = Time
If Time = Käyntiin Then Tietoa
LisääAikaa = TimeValue("00:00:01") Now
Application.OnTime LisääAikaa, "KellonAika"
End Sub
Sub Tietoa()
' tekstiä_E_H_alueelle Makro
Range("E5:H24").Select
Selection.FormulaR1C1 = "Tekstiä"
End Sub Mr.VBA kirjoitti:
Moi, tiedosto tarvitsee avata vain kerran. Kannattaa kunde testata. Ajattelin aikaisemmin työntekijää, joka tulee ysiltä töihin ja avaa koneen ja tiedoston ja sulkee koneen viideltä. Mutta jos tiedosto kokoajan siis auki, niin toimii joka vuorokausi samaan aikaan vaikka A1 pvm formaatti olisi 1950-luvulla. Kelloaika merkitsee;)
Mutta ..tässä kuitenkin koodia aikaisemman sijasta ja makro, jossa haluttu aloitus-aika. Tiedosto auki ja kellonaika moduuli vaan päälle. testauskommentit ?
ThisWorkbook kohtaan:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim LisääAikaa As Date
LisääAikaa = TimeValue("00:00:01") Now
On Error Resume Next
Application.OnTime LisääAikaa, "KellonAika", , False
End Sub
Moduuleihin:
Sub KellonAika()
Dim LisääAikaa As Date
Dim Käyntiin As Date
'alle haluttu käynnistys-aika joka vuorokausi
Käyntiin = ("23:59:59")
ActiveWorkbook.Sheets(1).Range("A1").Value = Time
If Time = Käyntiin Then Tietoa
LisääAikaa = TimeValue("00:00:01") Now
Application.OnTime LisääAikaa, "KellonAika"
End Sub
Sub Tietoa()
' tekstiä_E_H_alueelle Makro
Range("E5:H24").Select
Selection.FormulaR1C1 = "Tekstiä"
End SubMiksi noin monimutkaisesti, jos Excel auki kokoajan ja 00:00:00 tapahtuu makron suoritus?
yksi helppo keino olisi käyttää Windowsin omaa ajastettua toimintaa ja silloin Excel voi olla suljettuna kokoajan. Toki, jos pitää lukea dataa jostain kokoajan niin ei voi käyttää. Mutta jos esim. juuri, ennen makron suoritusta voidaan lukea dataa sisään silloin tekisin itse tällä, koska ei tartte Excelin olla auki resursseja viemässä.
siis START/ ADMINISTRATIVE TOOLS/ SHEDULE TASK ja siellä lisäät ton Excelin avaamisen ja Auto-Open tapahtumaan tarvittavat koodit ...
Keep EXCELing
@Kunde
- kunsepuu
Toisaalta kysymyshän oli miten korvata F9 napin painallus, jos solussa aika muuttuu ja raja ylittyy
kuinkas to inyt käynnistää makron?
ei siinä tartte tommosia...
ei vastaa kysymykseen ;-)
KEEP EXCELing
@Kunde
- autopäivistys
Tilanne siis:
Excel-tiedosto on koko ajan käynnissä ja näkyvissä ja ilman F9- nappia pitäisi saada laskenta ajantasalle klon mukaan eli tarkemmin vuorokauden vaihtuessa.
Ihan alussa mainitsin, että Excel pysyy käynnissä.
Itsekin osaan tehdä makron, joka automaattisesti rullaa kun tiedoston käynnistää, se on nimellä auto open.
Tämä vaan nyt ei riitä.
Kiitos asiaa pohtineille.
Mites, Kunde, jos kerrot tämän sivuillasi, mikä on osoite? - autopäivitys
Tämä viestiketju päivittyy vähän kummallisessa järjestyksessä.
Mutta kiitos VBA ja Kunde, yritän käyttää teidän ohjeitanne ja kerron miten kävi.
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Olen nainen pahoillani, että tykkään sinusta niin paljon, että
Haluaisin panna sua. Tuntuu vaan siltä, että olet sen suhteen ihan haluton. Ei minulle riitä pelkkä ystävyyssuhde.891448Puukotus Kajaanissa
Kuka puukotti ja ketä? https://yle.fi/a/74-20247765 Vähemmän yllättäen päihteet mainittu471003- 15876
Mieti oikeasti
Ollaan lähes tuntemattomia, mutta samalla on tämä erityinen vuosien tilanne takana, joka on ollut monella tapaa väärin.40838Pahin tapa satuttaa toista
On jättää toinen vaille mitään vastausta. Erityisen kipeää se tekee sillon jos toinen ghostaa.82748- 92741
kene ajoi "kolarin"?
"Punkaharjulla Luston ja Tuppuranmäen välillä sattui tiistaina aamupäivällä liikenneonnettomuus. Poliisin mukaan Savonl17727- 46718
Minulla on joskus ikävä sinua ja ajattelen sinua joskus.. edelleen
Olin joskus niin rakastunut sinuun. Olin onnellinen, että kohdattiin ja kun vain tiesin sinun olevan olemassa. Täytit aj27677- 68672
- 59662
- 47654
Alkaa jotenkin nyt kuvio hahmottuu täällä
Sellainen vaikutelma tästä alkaa tulla, että täällä on joku pieni porukka, joka tuntee toisensa tai ainakin pelaa samaan97651- 11641
Nainen, tässä olen kahden vaiheilla
Toinen pitäisi valita ja kummassakin on hyvät ja huonot puolensa. Toinen olisi sellainen pysyvä mutta työläs. Toinen taa56585Jos kaivattusi on
Varattu niin miksi et antaisi asian olla hänen suhteen. Miksi ylipäätään vielä jatkat?47576Hyvä on sitten, jos et sitä s*ksiä halua kanssani.
Rakastetaan vaan toisiamme, voin käydä muualla tyydyttämässä fyysisenpuolen tarpeet. Puhumalla tämäkin olisi selvinnyt.129557- 43544
Suloinen ja herkkä
Toiset huomioiva, räväkkä, yllättävä. Ei sellaisesta voi olla pitämättä.31525Oliko virhe palkata näykkelis johtoon?
Kunnan asiat sekaisin eikä mikään homma toimi. Ilmeisesti samaa sekoilua muillekin suunnille. Johtaja asuu itse muualla141524