Sama lista useisiin ComboBoxeihin VBA:lla?

Excelsson

Taul1:ssä esim. 20 ComboBoxia. Kuinka saadaan kaikkiin compoihin sama lista lyhyemmällä koodilla, ettei tarvi jokaista compoa erikseen määritellä samoilla listakohteilla? (Alla esimerkki). For...Next?

With Taul1.ComboBox1
.AddItem ("Yksi")
.AddItem ("Kaksi")
....jne....
End With

With Taul1.ComboBox2
.AddItem ("Yksi")
.AddItem ("Kaksi")
....jne.......

Kiitos!

4

99

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • vaihda taulukon nimi sopivaksi ja luetteloalue nyt A1:AXXXXXX
      Option Explicit
      Sub Täytä()
      Dim OLEobj As Object
      Dim Lista As Variant
      Lista = Sheets("Sheet1").Range("A1", Sheets("Sheet1").Range("A65536").End(xlUp))
      For Each OLEobj In ActiveSheet.OLEObjects
      If TypeName(OLEobj.Object) = "ComboBox" Then
      OLEobj.Object.List = Lista
      End If
      Next OLEobj
      End Sub

      Keep EXCELing
      @Kunde

    • Excelsson

      Kiitos paljon!

      Sain toimimaan seuraavalla muutoksella. Compokohteet sijaitsevat B50:B60.

      Lista = Sheets("Sheet1").Range("B50:B60")

      Alkuperäinen pätkä:
      Lista = Sheets("Sheet1").Range("B50", Sheets("Sheet1").Range("B60").End(xlUp))

      ..listaa vain rivit B49:B50, eli yhtä riviä liian ylhäältä ja vain kaksi kohdetta.
      Käytössäni on Excel 2003 versio, olisiko sillä vaikutusta asiaan?

      Tietysti nyt kaikkissa taulukon kompoissa on sama lista ja taulukossa on kaksi muuta compolistaa, mutta ne määritellään nyt erikseen käyttäen ensin .Clear toimintoa :)

      Pistän haastetta :) Kuinka määritellään sitten useampi comporyhmä eri listoilla? Eli compot 1-10 Lista1, compot 11-20 Lista2, compot 21-30 Lista3 jne...

      • Alkuperäinen pätkä:
        Lista = Sheets("Sheet1").Range("B50", Sheets("Sheet1").Range("B60").End(xlUp))

        ..listaa vain rivit B49:B50, eli yhtä riviä liian ylhäältä ja vain kaksi kohdetta.
        Käytössäni on Excel 2003 versio, olisiko sillä vaikutusta asiaan?

        EI
        Sheets("Sheet1").Range("B60").End(xlUp)
        ko. koodin pätkä valitsee solun B49 eli sinulla on solussa B49 joku arvo jolloin valinnaksi tulee koodissa Lista = Sheets("Sheet1").Range("B50", Sheets("Sheet1").Range("B60").End(xlUp)) B50:B49...

        eli muutat sitä arvoa B61 tai tarpeeksi kauaksi. Tietenkin jos sulla listat allekkain silloin ainut keino on hard codeta ne tyyliin Lista = Sheets("Sheet1").Range("B50:B60") kuten olet tehnyt


        no haasteeseen sitten...
        ei siinä tartte kummosta lisäystä

        Option Explicit
        Sub Täytä()
        Dim OLEobj As Object
        Dim Lista1 As Variant
        Dim Lista2 As Variant
        Dim Lista3 As Variant
        Lista1 = Sheets("Sheet1").Range("B50", Sheets("Sheet1").Range("B600").End(xlUp))
        Lista2 = Sheets("Sheet1").Range("C50", Sheets("Sheet1").Range("C600").End(xlUp))
        Lista3 = Sheets("Sheet1").Range("D50", Sheets("Sheet1").Range("D600").End(xlUp))
        For Each OLEobj In ActiveSheet.OLEObjects
        If TypeName(OLEobj.Object) = "ComboBox" Then
        Select Case Mid(OLEobj.Name, 9)
        Case 1 To 10
        OLEobj.Object.List = Lista1
        Case 11 To 20
        OLEobj.Object.List = Lista2
        Case 21 To 30
        OLEobj.Object.List = Lista3
        End Select
        End If
        Next OLEobj
        End Sub


        keep EXCELing
        @Kunde


    • Excelsson

      Kolahti :)

      Kiitos!

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Päivän Sanna: Nvidia sijoittaa miljardi dollaria Nokian osakkeisiin

      Nvidia merkitsee osakkeet 6,01 Yhdysvaltain dollarin osakekohtaisella merkintähinnalla tavanomaisten toteutumisehtojen t
      Maailman menoa
      26
      5117
    2. Palkansaajilta kupattiin 27,5 mrd euroa työeläkkeisiin

      Jo pelkän himmelin toimintakulut olivat 400 miljoonaa euroa, jolla olisi mukavasti tuottanut myös sote-palveluja hyvinvo
      Maailman menoa
      64
      3035
    3. Suomessa Pohjoismaiden tyhmimmät demarit......aijaijai..

      Lasse Lehtinen sanoo suoraan, että Ruotsissa on fiksummat demarit kuin Suomessa. Ja Tampereella fiksummat demut kuin Hel
      Maailman menoa
      12
      2920
    4. HS: persujen v. 2015 turvapaikanhakijoista alle puolet töissä

      Aikuisina Suomeen tulleista ja myönteisen päätöksen saaneista vain 42 prosenttia oli vuonna 2023 töissä, vaikka he ovat
      Maailman menoa
      143
      2831
    5. Nepotismi jytkyttää porvaristossa

      Taas uutisoidaan, että useampi perussuomalainen kansanedustaja on palkannut oman perheenjäsenensä eduskunta-avustajaksi
      Maailman menoa
      18
      1607
    6. Persut muuten hyväksyvät 2 + 8 mrd. euron maatalous- ja yritystuet

      Vaikka molemmat tukimuodot tiedetään haitallisiksi, koska ovat käytännössä pelkkää säilyttävää tukea, eivätkä kannusta k
      Maailman menoa
      86
      1580
    7. Martina Aitolehti podcastissa: Ero

      Martina Aitolehti podcastissa: Ero Martina Aitolehti kertoi BFF-podcastin https://www.iltalehti.fi/viihdeuutiset/a/696
      Kotimaiset julkkisjuorut
      227
      1536
    8. Kaikki ovat syntisiä!!!

      Näin täällä koko ajan vakuutellaan uskovaisten toimesta. Myös Päivi Räsänen on toistanut tätä samaa matraa jatkuvasti. N
      Luterilaisuus
      411
      1236
    9. Haluaisitko sinä

      Että välimme selkeäisivät vai tämäkö riittää sinulle?
      Ikävä
      68
      1120
    10. Persut palkkaavat verorahoilla

      avustajikseen lapsiaan ja naisystäviään. Juuso on palkannut avustajakseen oman poikansa. Hänen koulutustaustastaan ei
      Maailman menoa
      220
      1005
    Aihe