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"
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,215
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
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
 
Katılım
6 Mart 2008
Mesajlar
92
Excel Vers. ve Dili
2003 tr
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...
 
Katılım
6 Mart 2008
Mesajlar
92
Excel Vers. ve Dili
2003 tr
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...
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,273
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
Şöyle deneyin,

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

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,215
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
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
 
Katılım
6 Mart 2008
Mesajlar
92
Excel Vers. ve Dili
2003 tr
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?
 

Zeki Gürsoy

Uzman
Uzman
Katılım
31 Aralık 2005
Mesajlar
4,273
Excel Vers. ve Dili
Office 2019 (64 bit) - Türkçe
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.
 

N.Ziya Hiçdurmaz

Özel Üye
Katılım
28 Nisan 2007
Mesajlar
2,215
Excel Vers. ve Dili
Office 2013 TR / 32 Bit
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
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
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
 
Katılım
4 Haziran 2008
Mesajlar
8
Excel Vers. ve Dili
TR 2003
Kod:
ComboBox1.ColumnCount = 3
ComboBox1.List = Sheets(1).UsedRange.Value
şeklinde de olur.
 
Katılım
4 Haziran 2008
Mesajlar
8
Excel Vers. ve Dili
TR 2003
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.
 
Katılım
6 Mart 2008
Mesajlar
92
Excel Vers. ve Dili
2003 tr
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...
 
Katılım
6 Mart 2008
Mesajlar
92
Excel Vers. ve Dili
2003 tr
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...
 
Katılım
6 Mart 2008
Mesajlar
92
Excel Vers. ve Dili
2003 tr
Private Sub Cstok_click()
textbox1.Value = cstok.Column(1)
textbox2.value = cstok.Column(2)
End If
End Sub

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