Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Pop-up kalenteri

Jamro [21.07.2018 10:27:32]

#

Onko mahdollista tehdä esimerkin toiminto yhdellä Excelin pop-up kalenterilla ja miten se tehdään. Yhdellä komentopainikkeella kalenteri toimii, mutta pystyykö tekemään saman myös kahdelle komentopainikkeelle?

Esim:
Painamalla Command button 1 --> haluttu päivämäärä generoituu A1-soluun ja vastaavasti painamalla Command button 2 --> haluttu päivämäärä generoituu B2-soluun

Command 1 --> 21.7

Command 2 --> 15.7

Grez [21.07.2018 19:20:26]

#

Jamro kirjoitti:

Onko mahdollista tehdä esimerkin toiminto yhdellä Excelin pop-up kalenterilla ja miten se tehdään.

Laitat eri komentopainikkeita painettaessa ajettevan koodin muuten samaksi, mutta laitat Command1-painikkeen koodiin A1 solun asemesta Command2-painikkeen koodiin B2-solun.

Jamro [22.07.2018 20:36:07]

#

Command1-painikkeelle on kirjoitettu alla oleva koodi, miten Command2-painike liitetään koodiin jotta pvm siirtyy B2 soluun? Kokeilin tehdä Command2-painikkeelle saman rimpsun, mutta se ei toimi.


Commandbutton1:

Private Sub CommandButton1_Click()

Application.Run "'Harjoitus.xlsm'!OpenCalendar"

Sheets("Taul1").Select

End Sub

UserForm

Private Sub cmdClose_Click()

Unload Me

End Sub
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)

On Error Resume Next

Sheets("Taul1").Range("A1").Value = Me.MonthView1.Value

Unload Me

End Sub
Private Sub UserForm_Initialize()

If IsDate(ActiveCell.Value) Then

Me.MonthView1.Value = ActiveCell.Value

End If

End Sub

Grez [23.07.2018 10:33:50]

#

Niin, tuossa esimerkissähän on ongelmana, että kohdesolua ei valita painikkeen painamisessa vaan se on kiinteästi määritelty tuonne kalenterin päivänvalintaan.

Nyt on vaikea sanoa miten kohdesoluvalinta olisi järkevä välittää tuonne kalenterille, kun tuossa ei tuota OpenCalendar toimintoa ole kuvattu. Onko tuossa siis tarkoitus että sinulla on Harjoitus.xlsm -työkirja jossa se kalenteri on ja nuo komentopainikkeet erillisellä excel-taulukolla. Jos Harjoitus.xlsm:ää ei voi muuttaa ja sinne on koodattu että päivävalinta päivittää solun A1, niin silloin tietenkään ulkopuolisesta komentopainikkeesta ei ole mahdollista muuttaa sitä mitä solua päivitetään. Siis paino sanoilla "jos ei voi muuttaa".

Jamro [23.07.2018 20:45:02]

#

Kyllä, Harjoitus.xlsm-työkirja jossa kalenteri ja taulukko1. Taulukossa1 on kaksi Command-painiketta joilla avataan popup-kalenteri, Command1 generoi päivämäärän A1-soluun ja Command2 B2-soluun (teoriassa). Olisiko mahdollista tehdä soluvalinta if-lausekkeella kun tehdään päivämäärävalinta (MonthView1_DateClick(ByVal DateClicked As Date)?

Grez [24.07.2018 08:36:04]

#

Mielestäni yksinkertaisinta olisi komentopainiketta painettaessa kirjata tuo kohdesolu johonkin muuttujaan tai vaikka MonthView1:n tagiin ja käyttää sitten sitä tuossa DateClicked tapahtumassa.

Mutta edelleen tuntuu ristiriitaiselta tuo kirjoituksesi. Eli onko sinulla kaksi erillistä excel-tiedostoa (esim. harjoitus.xlsm ja toinen.xlsm)? Jos ei ole niin ei varmaan kannata OpenCaledariin viitata tuolla

Application.Run "'Harjoitus.xlsm'!OpenCalendar"

vaan suoraan. Nythän tuo lakkaa toimimasta, jos joskus muutat työkirjan nimeä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta