[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ohjelmistot] Muutamia hyödyllisiä makroja :)



Päivämäärän kysymisessä ongelmia?
---------------------------------
Päivämäärän kysyminen inputboxilla voi aiheuttaa ongelmia
päivämäärämuotoiluissa. Seuraavassa kuitenkin ratkaisu, jonka avulla
päivämäärän kysymisessä ei pitäisi tulla ongelmia.

 Sub kysy_paiva()
        Dim paiva As Date 'Alustetaan paiva-muuttuja päivämääräksi
        paiva = InputBox("Anna päivä") ' Kysytään päivä
        ActiveCell.Value = paiva ' Liitetään päivä aktiiviseen soluun
 End Sub

InputBoxin Cancel-painikkeen painaminen aiheuttaa virheen. 
--------------------------------- 
InputBoxissa Cancel-painikkeen painamisesta voi seurata virheellinen
toiminta. Esimerkiksi rivin poistamisen yhteydessä tuloksena voi olla
aktiivisen rivin tai solualueen häviäminen. Seuraavassa lyhyt esimerkki,
jonka avulla voi itse testata InputBoxin toimintaa. Tuollaisen tempun
käyttö ei kuitenkaan ole pakollista harjoitustyössä. 

Sub Cancel()
    testi = InputBox("Anna arvo tai paina Cancel-painiketta")
    If (testi <> "") Then
      testi2 = MsgBox(testi)
    Else
      testi2 = MsgBox("Ei arvoja")
    End If
End Sub

Kaavion sarjojen päivittäminen
-------------------------------
Kaavio ei päivity automaattisesti, jos data-alueelle tulee lisää sarjoja.
Esimerkiksi jokaisen opiskelijoiden muodostaessa oman sarjansa
opiskelijoiden lisääminen ei vaikuta ollenkaan kaavioon.
Kaaviolle voi antaa data-alueen nimettynä solualueena, mutta silti ongelma
ei poistu. Kaavionäet muuttaa nimetyn solualueen soluviittaukseksi.

Ongelman saa poistumaan tekemällä kaavion päivitysmakron. Makron tekeminen
onnistuu nauhoittamalla kaavion data-alueen päivittäminen. Data-alueen
päivittäminen voidaan tehdä napauttamalla hiiren oikealla kaaviota ja
valitsemalla <samp>Source Data</samp>-kohdan. Kohdan alta voi valita uuden
data-alueen.  Data-alueena kannattaa käyttää nimettyä aluetta, mutta
nimetty alue joudutaan lisäämään erikseen makroon. Esimerkin tapauksessa
makro on nauhoitettu ja makroon on lisätty ainoastaan nimetyn alueen nimi
JUTTU alkuperäisen soluviittauksen paikalle. Makroa kannattaa käyttää
osana lisää opiskelija makroa.

Sub paivita_kaavio()
    ActiveSheet.ChartObjects("Chart 1").Activate
    ActiveChart.ChartArea.Select
    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("JUTTU"), _
    PlotBy:=xlRows
End Sub

Mukavia hetkiä makrojen parissa :)
--
Petri Heinonen                 <URL: http://www.mit.jyu.fi/peheinon/>        
Jyväskylän yliopisto/Tietotekniikan laitos        peheinon@mit.jyu.fi
PL 35   (Agora C431.2)                         	Puh. +358 14 260 2746
40351 Jyväskylä                                 Fax. +358 14 260 2731


-- send "unsubscribe ohjelmistot" to majordomo@cc.jyu.fi to unsubscribe ---