UserForm Excelissä

Hei,

Miten ladataan UserFormissa olevaan Comboboxiin vaihtoehtoja siten, että vaihtoehdot latautuvat samalla kun UserForm ladataan?

Minulla on makro, joka on eräässä moduulissa, ja tämän makron lopussa on rivit:

Load UserForm1
UserForm1.Show
End Sub

UserForm1:ssä on ComboBox, johon haluan ladata erilaisia arvoja. Miten saan ladattua arvoja listaan siten, että ne tulisivat jo siinä vaiheessa kun itse UserForm ladataan? Ylläolevaan koodiin lisäämällä en hommaa ole saanut toimimaan koska rivin UserForm1.Show jälkeen tämän makron ajo keskeytyy ja jatkuu seuraavalta riviltä vasta kun UserForm1 on suljettu. Load- ja Show rivien välissäkään homma ei onnistu.

Nyt onnistun lataamaan arvot vain tässä kyseisessä UserFormissa olevan olion klikkaamisella tms., vaikkapa samaisen ComboBoxin muutoksella:

Private Sub ComboBox1_Change()
For a = 0 To 4
ComboBox1.AddItem a
Next a
End Sub

Käytännössä arvot latautuvat Comboboxiin vasta kun siihen kirjoittaa jotakin, arvot eivät siis "ole valmiina". Paras vaihtoehto ladata arvot tässä kyseisessä tapauksessa olisi saada ComboBoxiin jonkin nimetyn solualueen sisältö. Onnistuisiko tämmöinen jollakin lailla?

-Pasi-
3172
Äänestä

Muut lukivat myös

Vastaukset 3

Vanhimmat
  • toimii, kiitos!

    -Pasi-

    Äänestä

  • on, pystyykö ComboBoxiin tuomaan useita arvoja/tietoja kerralla vai onnistuuko vain yksitellen (koskeeko List-ominaisuus vain suoraan taulukossa olevaa ComboBox ohjausobjektia)?

    Eli jos minulla on taulukossa nimetty alue vaikkapa "Combo1", saanko tämän alueen sisältämät arvot ComboBoxiin jotenkin näppärämmin kuin ensin selvittämällä alueen sijainnin (alue muuttuu jatkuvasti) ja sitten lisäämällä arvot yksitellen AddItem-käskyllä (tietenkin while-loopin avulla)?

    -Pasi-

    Äänestä

Kommentoi aloitusta


Pasi kirjoitti:

Hei,

Miten ladataan UserFormissa olevaan Comboboxiin vaihtoehtoja siten, että vaihtoehdot latautuvat samalla kun UserForm ladataan?

Minulla on makro, joka on eräässä moduulissa, ja tämän makron lopussa on rivit:

Load UserForm1
UserForm1.Show
End Sub

UserForm1:ssä on ComboBox, johon haluan ladata erilaisia arvoja. Miten saan ladattua arvoja listaan siten, että ne tulisivat jo siinä vaiheessa kun itse UserForm ladataan? Ylläolevaan koodiin lisäämällä en hommaa ole saanut toimimaan koska rivin UserForm1.Show jälkeen tämän makron ajo keskeytyy ja jatkuu seuraavalta riviltä vasta kun UserForm1 on suljettu. Load- ja Show rivien välissäkään homma ei onnistu.

Nyt onnistun lataamaan arvot vain tässä kyseisessä UserFormissa olevan olion klikkaamisella tms., vaikkapa samaisen ComboBoxin muutoksella:

Private Sub ComboBox1_Change()
For a = 0 To 4
ComboBox1.AddItem a
Next a
End Sub

Käytännössä arvot latautuvat Comboboxiin vasta kun siihen kirjoittaa jotakin, arvot eivät siis "ole valmiina". Paras vaihtoehto ladata arvot tässä kyseisessä tapauksessa olisi saada ComboBoxiin jonkin nimetyn solualueen sisältö. Onnistuisiko tämmöinen jollakin lailla?

-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