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!
Sama lista useisiin ComboBoxeihin VBA:lla?
4
101
Vastaukset
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
S-kauppa nosti hintoja, K-kauppa laski
Elintarvikkeiden arvonlisävero laski vuodenvaihteessa 13,5 prosenttiin. S-kauppa siirsi alennuksen suoraan katteisiin pi1777624Hiihtäjä Vilma Nissisen kommentit aiheutti paniikkia
ja hernettä vedettiin nenään. Nissinen kertoi torstaina haastattelussa, kun häneltä kysyttiin, että tykkääkö hän hiihtä1325234Huuto yltyy persujen piirissä Venezuelan johdosta.
Kohta kakofonia yltyy kun persut tajuavat mitä Venezuelassa tapahtui. Von den Leydenki jo kipuilee kuten persut EU:ssa y512741- 2762356
Nyt ottaa persua pattiin: sähköauto joulukuun myydyin
🤣 prööt prööt pakoputkellaan pörisevää persua ottaa nyt saamaristi pattiin, kun paristoilla kulkeva sähköauto on noussu1282298Yhdysvaltain hyökkäys Venezuelaan on YK:n peruskirjan mukaan laiton hyökkäyssota
Oman sävynsä tähän tuo vielä se, että hyökkäys kohdistettiin nimenomaan valtiojohtoa vastaan. Toki, kun tavoitteena on v5712114Ovatko Perussuomalaiset kommunisteja?
Toiset sanovat että ovat, toiset sanovat että eivät. Ainakin heillä on paljon sen aatteen piirteitä, koska haluavat kont722099Persuilla paniikki, kun diktaattorit yksi kerrallaan kaatuvat
Hallapersut halusivat sivarineidostaan sotilasjuntan komentajan Suomeen, jotta persuaatteen mukaiset puhdistukset olisi01730Ei tule uni
Kuten epäilin. Onneksi viime yön sain ihan hyvin nukutuksi. Tiesin kyllä, ettei tästä mitään tänään tule.571136Miksi juuri Venezuela?
Kaikista maailman valtioista Trump otti silmätikukseen Venezuelan. Mutta minkä ihmeen takia? Kyseessä on kuitenkin vähäp2931118