listboxtaki son sütunu başa almak

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,217
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

İlgili sütunu sayfada sola alırsanız listelerken kolaylık olur.. Böyle yapınca Listbox nesnesinin RowSource özelliğinden faydalanabilirsiniz.

Bu haliyle yapmak istiyorum derseniz ki tavsiye etmem... Aşağıdaki gibi verileri ListBox nesnesine istediğiniz sırada yükleyebilirsiniz. Bunun dezavantajı ise hem hız kaybıdır hem de düzensiz veri yapısı oluşmasıdır.

10 sütunluk bir tablonuz olduğunu varsaydım.. 10. sütundaki veriyi ListBox üzerinde ilk sırada gösterdim. Siz sütun indislerini (kalın fontlu değerler) değiştirerek istediğiniz görüntüyü elde edebilirsiniz.

Linkte benzer bir konu işlenmiş... https://www.excel.web.tr/threads/listboxa-additem-ile-veri-alma.88608/

For X = 2 To Cells(Rows.Count, 1).End(3).Row
ListBox1.ColumnCount = 10
ListBox1.AddItem
ListBox1.List(0, 0) = Cells(X, 10)
ListBox1.List(0, 1) = Cells(X, 1)
ListBox1.List(0, 2) = Cells(X, 2)
ListBox1.List(0, 3) = Cells(X, 3)
ListBox1.List(0, 4) = Cells(X, 4)
ListBox1.List(0, 5) = Cells(X, 5)
ListBox1.List(0, 6) = Cells(X, 6)
ListBox1.List(0, 7) = Cells(X, 7)
ListBox1.List(0, 8) = Cells(X, 8)
ListBox1.List(0, 9) = Cells(X, 9)
Next
 
Katılım
1 Mart 2005
Mesajlar
91
Merhaba,

İlgili sütunu sayfada sola alırsanız listelerken kolaylık olur.. Böyle yapınca Listbox nesnesinin RowSource özelliğinden faydalanabilirsiniz.

Bu haliyle yapmak istiyorum derseniz ki tavsiye etmem... Aşağıdaki gibi verileri ListBox nesnesine istediğiniz sırada yükleyebilirsiniz. Bunun dezavantajı ise hem hız kaybıdır hem de düzensiz veri yapısı oluşmasıdır.

10 sütunluk bir tablonuz olduğunu varsaydım.. 10. sütundaki veriyi ListBox üzerinde ilk sırada gösterdim. Siz sütun indislerini (kalın fontlu değerler) değiştirerek istediğiniz görüntüyü elde edebilirsiniz.

Linkte benzer bir konu işlenmiş... https://www.excel.web.tr/threads/listboxa-additem-ile-veri-alma.88608/
korhan bey çok teşekkür ederim. verdiğiniz kodu uyguladım ama dediğiniz gibi listboxun userform harici diğerlerinde de etkileşimi varki tüm düzen bozuldu ve hata verdi. yani tek tek bulup ona göre düzeltmem uğraştıracak. o sütunu başa alırsam da bu defa formülleri baştan sona kadar değiştirmem gerekecek. mesela b2 hücresinden aldığım veri c2 olacak. tek tek bulup değiştirmem yine uğraş. benimde aklıma şöyle bir şey geldi.
LİSTBOX1 DE 11 SÜTUN VAR VE BENİM İÇİN ÖNEMLİ OLAN EN SONDAKİ YANİ 11.SÜTUNDAKİ VERİ. LİSTBOXTAN BU VERİYİ TEXTBOXA ATAYIM DEDİM. TextBox32.Value = ListBox1.Column(10) FORMÜLÜNÜ LİSTBOX1.CLİCK OLARAK YAPTIM ŞU HATAYI VERİYOR "COULD NOT GET THE COLUMN PROPERTY. INVALID PROPERTY ARRAY INDEX" SÜTUN (5) TE YAPSAM AYNI HATA. YARDIMCI OLURMUSUNUZ
YANİ LİSTBOX1 DE SEÇİLİ OLAN VERİNİN 11.KOLONDAKİ VERİYİ TEXTBOX32 YE YAZACAK
TextBox32 = ListBox1.List(ListBox1.ListIndex, 10 formülüde işe yaramadı bunu da denedim aynı yukarıdaki uyarıyı veriyor
 
Son düzenleme:

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,217
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Öncelikle bir tavsiyede bulunmak isterim. Bu tarz Userform çalışmalarında öncelikle sayfa düzenlerini çok iyi belirlemeniz gerekiyor. Çünkü sonradan böyle sütun eklemeleri tüm düzeni etkileyecektir.

Sonrasında paylaştığım linkte de belirtilmiş. ADDITEM yöntemiyle ListBox nesnesine 10 sütun ekleyebilirsiniz. Daha fazlası hata verecektir.

Yine paylaştığım linkte bunu aşmak için DİZİ (Array) yöntemiyle ilgili çözümler sunulmuş.

İlk başta sayfa düzeni iyi olursa genellikle ROWSOURCE yöntemiyle tüm sorunu çözebiliyorusunuz. Ama bu şekilde karışık ilerlerseniz projenin birçok aşamasında sorunlarla karşılaşmanız kaçınılmazdır.

Bu sebeple kodlar çoğalmadan sayfa yapısını düzeltip ilerlerseniz daha sağlıklı olacaktır.
 
Üst