VBA User Form ja CheckBoxit

Miten saan Exelin VBA User Formissa toimimaan niin, että kun mulla on useampi check box, niin aina kun painaa check boxin valituksi, niin viereiseen labeliin tulee tekstiä.
Olen saanut niin että kun yhden boxin painaa valituksi, niin teksti ilmestyy labeliin, mutta ongelma ilmeneekin siinä vaiheessa kun valitsen kaksi check boxia aktiiviseksi. Kuinka saan näkymään sekä ekan boxin tekstin labelissä, sekä tokan boxin tekstin?

Esimerkkinä vaikka, että minulla on check boxeissa valittava mantereita ja haluan, että labeliin tulee näkyviin valittuun mantetereeseen kuuluvat maat. esim.

x Eurooppa -> labelissa lukee: Suomi, Ruotsi, Viro
x Aasia -> labelissa lukee sekä euroopan maat sekä aasian maat


Sekavasti selitetty, mutta toivottavasti joku edes tajusi :)
4406
Äänestä

Muut lukivat myös

Vastaukset 4

Vanhimmat

Private Sub ChkEurooppa_Click()
TäytäLista
End Sub

Private Sub ChkAasia_Click()
TäytäLista
End Sub

Private Sub ChkAfrikka_Click()
TäytäLista
End Sub

Sub TäytäLista()

Dim MaatEurooppa As String, MaatAasia As String, MaatAfrikka As String, Maat As String

If ChkEurooppa = True Then MaatEurooppa = "Suomi, Ruotsi, Viro"
If ChkEurooppa = False Then MaatEurooppa = Empty

If ChkAasia = True Then MaatAasia = "Venäjä, Japani"
If ChkAasia = False Then MaatAasia = Empty

If ChkAfrikka = True Then MaatAfrikka = "Somalia, Etiopia"
If ChkAfrikka = False Then MaatAfrikka = Empty

Maat = MaatEurooppa
If ChkEurooppa = True And ChkAasia = True Then Maat = Maat & ", "
Maat = Maat & MaatAasia
If ChkEurooppa = True And ChkAfrikka = True Then
Maat = Maat & ", "
ElseIf ChkAasia = True And ChkAfrikka = True Then
Maat = Maat & ", "
End If
Maat = Maat & MaatAfrikka

LblMaat = Maat

End Sub

Noin onnistuu, helpompi olisi tosin tehdä siten että jokaisella ChkBoxilla olisi oma Labelinsa.

-Pasi-

Äänestä
  • kiitos, sain sen tällä toimimaan oikein hyvin.

    Äänestä

Nyt ilmeni uusi ongelma. Maita tuli labeliin niin paljon, että tarttisi saada toimiva vierityspalkki jotta kaikki maat näkyisi.

Oon ihan käsi tän VBA:n kanssa. Osaisko kukaan jelppiä miten saan vierityspalkin toimimaan? Sain kyllä lisättyä itse palkin mutta toimintaa en vaan saa aikaseks.

Äänestä
  • Terve,

    käytä labelin sijaan TextBoxia ja tämän ominaisuuksista etsit "ScrollBars" ja valitset sieltä vaikka vaihtoehdon "2 - fmScrollBarsVertical".

    Nyt vierityspalkki pitäisi ilmestyä näkyviin jos tekstin määrä niin edellyttää.

    -Pasi-

    Äänestä

Kommentoi aloitusta


grunz kirjoitti:

Miten saan Exelin VBA User Formissa toimimaan niin, että kun mulla on useampi check box, niin aina kun painaa check boxin valituksi, niin viereiseen labeliin tulee tekstiä.
Olen saanut niin että kun yhden boxin painaa valituksi, niin teksti ilmestyy labeliin, mutta ongelma ilmeneekin siinä vaiheessa kun valitsen kaksi check boxia aktiiviseksi. Kuinka saan näkymään sekä ekan boxin tekstin labelissä, sekä tokan boxin tekstin?

Esimerkkinä vaikka, että minulla on check boxeissa valittava mantereita ja haluan, että labeliin tulee näkyviin valittuun mantetereeseen kuuluvat maat. esim.

x Eurooppa -> labelissa lukee: Suomi, Ruotsi, Viro
x Aasia -> labelissa lukee sekä euroopan maat sekä aasian maat


Sekavasti selitetty, mutta toivottavasti joku edes tajusi :)

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