• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Combobox additem Sutun Oluşturma...

Katılım
6 Mart 2008
Mesajlar
92
Excel Vers. ve Dili
2003 tr
Combobox'a Additem yöntemiyle örnek olarak aşağıdaki gibi bilgileri nasıl verebiliriz. Her Satırın altına cstok.additem ' mi yazmamız gerekiyor...Additem 'le ilgili 2 saattir aramalar yapıyorum ama örnek bir uygulama bulamadım...

cstok.Column(0, 0) = "00"
cstok.Column(1, 0) = "10"
cstok.Column(2, 0) = "20"
cstok.Column(3, 0) = "30"
cstok.Column(0, 1) = "01"
cstok.Column(1, 0) = "11"
cstok.Column(2, 0) = "21"
cstok.Column(3, 0) = "31"
 
Yanıt

Bu şekil deneyiniz
Kod:
Private Sub UserForm_Initialize()
With ComboBox1
.AddItem "00"
.AddItem "10"
.AddItem "20"
.AddItem "30"
.AddItem "01"
.AddItem "11"
.AddItem "21"
.AddItem "31"
End With
End Sub
 
Bu şekil deneyiniz
Kod:
Private Sub UserForm_Initialize()
With ComboBox1
.AddItem "00"
.AddItem "10"
.AddItem "20"
.AddItem "30"
.AddItem "01"
.AddItem "11"
.AddItem "21"
.AddItem "31"
End With
End Sub
İlginize Öncelikle teşekkür ederim....
O şekilde birer satır yazıyor ..
Combobox'a tıkladığımda 3 sutun halinde bilgi istiyorum...
Sizin yazdığınız tek sutunda geçerli...
 
cstok.Column(0, 0) = "00"
cstok.Column(1, 0) = "10"
cstok.Column(2, 0) = "20"
cstok.Column(3, 0) = "30"
cstok.Column(0, 1) = "01"
cstok.Column(1, 0) = "11"
cstok.Column(2, 0) = "21"
cstok.Column(3, 0) = "31"

mesela bu örnek üç sutun 2 satır...
 
Şöyle deneyin,

Kod:
with combobox1
    .additem
    .list(.listcount-1,0)="00"
    .list(.listcount-1,1)="10"
    .list(.listcount-1,2)="20"
end with
 
Yanıt

Kod:
Private Sub UserForm_Initialize()
ComboBox1.ColumnCount = 3
With ComboBox1
.AddItem
ComboBox1.List(s, 0) = "00"
.AddItem
ComboBox1.List(s, 1) = "10"
.AddItem
ComboBox1.List(s, 2) = "20"
'
.AddItem
ComboBox1.List(s + 1, 0) = "40"
.AddItem
ComboBox1.List(s + 1, 1) = "50"
.AddItem
ComboBox1.List(s + 1, 2) = "60"
s = s + 1
End With
End Sub
 
Sn ziya bey
Verdiğiniz örnek kesinlikle dört dörtlük çalışıyor...
Eğer 50 satırlık bir bilgimiz varsa 50 sefer .additem kodunu mu yazıcaz.?
Girilicek satır sayısı 50 sutun sayısı 3 ve bu değerler sabit değişken değil..
50 kere additem yapmanın daha kısa yolu var mı acaba?
 
1 AddItem ile pek çok sütunu yazabilirsiniz. 50 satır 50 defa AddItem demektir. Kaynağın ne olduğunu açık yazarsanız yardımcı olmak daha kolay olacaktır.
 
Yanıt

Kod:
Private Sub UserForm_Initialize()
Dim SUT As Integer
ComboBox1.ColumnCount = 3
For SUT = 1 To Cells(65536, "A").End(3).Row
ComboBox1.AddItem
ComboBox1.List(S, 0) = Cells(SUT, "A")
ComboBox1.List(S, 1) = Cells(SUT, "B")
ComboBox1.List(S, 2) = Cells(SUT, "C")
S = S + 1
Next
End Sub
 
Ne yapacaksınız additem metodunu.
Ben size dizi yöntemi uygulayarak listboxa değer alma kodlarını gönderiyorum.
Veriler çok olduğu zaman 35 bin - 40 bin gibi.additem yöntemini kullanarak ve birde benim verdiğim yöntemi kullanarak durumu test ediniz.:cool:
Kod:
Dim sat As Long, sut As Byte
ListBox1.ColumnCount = 3
ReDim myarr(1 To 3, 1 To Cells(65536, "A").End(xlUp).Row)
For sat = 1 To Cells(65536, "A").End(xlUp).Row
    For sut = 1 To 3
        myarr(sut, sat) = Cells(sat, sut)
    Next sut
Next sat
ListBox1.Clear
ListBox1.Column = myarr
Erase myarr
 
Kod:
ComboBox1.ColumnCount = 3
ComboBox1.List = Sheets(1).UsedRange.Value

şeklinde de olur.
 
Evren Beyin yöntemine yakın bir yöntem de şöyle olabilir.
Kod:
ComboBox1.ColumnCount = 3
ComboBox1.List = Sheets(1).Range("A1:C" & Sheets(1).Cells(65536, "A").End(xlUp).Row).Value
ComboBox1.list(xsatir,11)=Değişken
şeklinde veri girerseniz en fazla 10 sütun görüntüleyebilirsiniz.
Ancak dizi yada range dan direkt yüklerseniz isterseniz 100 sütun da görüntüleyebilirsiniz. Bu da çömezden bir tavsiye.
 
Sn zeki hocam
Sn Ziya hocam
Sn Evren hocam
Sn Excelbrother
Hepinize ilginiz için ayrı ayrı teşekkür ediyorum..

Çalışmamda tek bir sayfa istediğim için vede additem özelliğini kullanmak istediğim için (bu istek niye çözemedim ama herhalde bu işte yeni olduğum ve birşeyler başarmanın mutluluğunu daha da fazla yaşamak ve işin kolayına kaçmamak için ) additem kullanmak istiyorum.. Bu işe merak saldım ve programımda herşeyin kod sayfasında olması beni daha mutlu edecektir. o yüzden 50 sefer additem özelliğini kullanacağım...

Bu arada verilen örnekler gerçekten çok güzel örnekler..
Bu kodları yazan değerli forum üyelerine çok teşekkür ediyorum...
 
cstok.ColumnCount = 3
With cstok
.AddItem
.Column(0, 0) = "4mm DC"
.Column(1, 0) = 3210
.Column(2, 0) = 6000
.AddItem
.Column(0, 1) = "4mm DC"
.Column(1, 1) = 3210
.Column(2, 1) = 2550
.AddItem
.Column(0, 2) = "4mm DC"
.Column(1, 2) = 3210
.Column(2, 2) = 2500
.AddItem
.Column(0, 3) = "4mm DC"
.Column(1, 3) = 3210
.Column(2, 3) = 2100
.AddItem
.Column(0, 4) = "4mm DC"
.Column(1, 4) = 1605
.Column(2, 4) = 2250
.........................
bilgilerimi bu şekilde girdim..
cstok (combobox)' seçtiğim verinin 2.sutununu textbox2'ye 3.sutununu textbox3'nasıl aktarabilirim...
 
Private Sub Cstok_click()
textbox1.Value = cstok.Column(1)
textbox2.value = cstok.Column(2)
End If
End Sub

Bu şekilde çözüldü ...
 
Geri
Üst