Aliohjelman käynnistys

Hei,

miten voin käynnistää VBA:ssa jonkin koodin suorituksen toisen koodin suorituksen aikana?

Tarkoitan sitä että kun minulla on vaikkapa kaksi oliota ja tapahtumaa; CommandButton1.Click ja ComboBox1.Change, niin miten voin käynnistää CommandButton1.Click -koodissa olevalla käskyllä ComboBox1.Change -koodin suorituksen välittömästi?

Nyt teen kyseisen tempun lukemalla comboboxin arvon muistiin ja kirjoittamalla ensin comboboxiin tyhjän arvon ja edelleen äsken muistiin luetun arvon. ComboBox1.Change -ohjelman alussa koodin suoritus keskeytetään jos combon arvo on tyhjä. Toimii kyllä, mutta ei kovin fiksua...

-Pasi-
3445
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat

käy ihan vaan:
ComboBox1.Change(kenties jotain parametria)

Äänestä

En ole ihan varma, mitä tarkoitit, mutta jos suunnilleen...
Yleensäkin kannattaa tehdä siitä suoritettavasta jutusta funktio, aliohjelma, jota sitten kutsutaan milloin mistäkin, vaikka Command-painikkeesta tai ComboBoxin Change:sta.
Eli itse nappuloihin tai muihin objekteihin ei kannata paljoa koodata, ei tarvitse toistaa samaa koodia moneen kertaan kun sen kirjoittaa funktioksi, aliohjelmaksi.
esimerkissä funktiota "tulosta" kutsutaan aina kun Combo1 arvo muuttuu, paitsi jos se on tyhjä,
ja Command1-painikkeella kutsutaan samaa funktiota.

Function tulosta()
Label1.Caption = Combo1.Text
End Function

Private Sub Combo1_Change()
If Combo1.Text "" Then Call tulosta
End Sub

Private Sub Command1_Click()
Call tulosta
End Sub

Äänestä
  • vastasit juuri siihen mitä tarkoitinkin, kiitos!

    -Pasi-

    Äänestä

Kommentoi aloitusta


Pasi kirjoitti:

Hei,

miten voin käynnistää VBA:ssa jonkin koodin suorituksen toisen koodin suorituksen aikana?

Tarkoitan sitä että kun minulla on vaikkapa kaksi oliota ja tapahtumaa; CommandButton1.Click ja ComboBox1.Change, niin miten voin käynnistää CommandButton1.Click -koodissa olevalla käskyllä ComboBox1.Change -koodin suorituksen välittömästi?

Nyt teen kyseisen tempun lukemalla comboboxin arvon muistiin ja kirjoittamalla ensin comboboxiin tyhjän arvon ja edelleen äsken muistiin luetun arvon. ComboBox1.Change -ohjelman alussa koodin suoritus keskeytetään jos combon arvo on tyhjä. Toimii kyllä, mutta ei kovin fiksua...

-Pasi-

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