ListBox Sütun Genişliği

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
411
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
Arkadaşlar öncelikle herkese selam.
Elimde farklı zamanlarda farklı sütunlar kullanmam gereken bir form var. şöyle ki. a sütunu adı soyadı b. sütunu sicil no bunun gibi devam edip gidiyor ben form üzerinden istediğim sütunları listboxa aldırıyorum. sütun sayısı fazla olunca sütun genişliği de buna paralel olarak artacağından listbox daki sütun genişliklerini önceden çok geniş tutmak istemiyorum. bunun yerine sütundaki en geniş hücreye göre listboxdaki sütunların genişliğinin otomatik olarak genilemesi olabilir mi diye düşünüyorum. yani excell sayfasında olduğu gibi otomatik olarak genişlemesi gibi.
şu anki kodlarım bunlar;

Private Sub UserForm_Activate()
ListBox1.ColumnCount = 7
ListBox1.ColumnWidths = "75;50;60;60;60;60;60;60;60;60""

ListBox1.RowSource = "liste!b1:j240" '& Sheets("izinliler").Range("c65536").End(xlUp).Row
End Sub
 
Katılım
22 Haziran 2005
Mesajlar
998
Excel Vers. ve Dili
Office 2007 Türkçe
Sayın sbayyigit1 istediğiniz işlem listbox için kod yazarak yapılabilir. Ancak eğer sutünları kullanıcının manuel değiştirmesini istiyorsanız bunun için listbox kontrolü yerine listview kontrolünü kullnmanızı tavsiye ederim.

listview i kullanmayı bilmiyorsanız aşağıdaki linke tıklayarak öğrenebilirsiniz.

http://www.excel.web.tr/viewtopic.php?t=13949
 
Katılım
9 Haziran 2006
Mesajlar
16
Excel Vers. ve Dili
Excel-2003
Türkçe
Merhaba,

Listview'i merak ettim ve excel'in içinde bulamadım.
Nerede olabilir?


Selamlar.
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
411
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
alpi' Alıntı:
istediğiniz işlem listbox için kod yazarak yapılabilir. Ancak eğer sutünları kullanıcının manuel değiştirmesini istiyorsanız bunun için listbox kontrolü yerine listview kontrolünü kullnmanızı tavsiye ederim.

listview i kullanmayı bilmiyorsanız aşağıdaki linke tıklayarak öğrenebilirsiniz.
http://www.excel.web.tr/viewtopic.php?t=13949
sayın ustam öncelikle listview hiç kullnmadım. verdiğiniz linke bakrım fakat uygulamadım. ama benim istediğim kullanıcının manuel olarak değiştirmesi değil.
yapmak istediğim şey şu.
Sadece A sütununu örnek örnek verecek olursak; bu sütun kimi zaman sıra no (4 veya 5 karakter) kimi zaman adı soyadı (20-30 karakter),kimi zaman da adresi (40-50 karakter) olabiliyor. bu değişiklikten dolayı standart bir genişlik veremiyorum. bundan dolayı en geniş karaktere sahip hücreye göre otomatik olarak ayarlanmasını istiyorum. kullanıcının değil programın yapmasını istiyorum.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki kodu deneyin. Sütun genişliklerine göre listboxun genişliklerini ayarlar.

[vb:1:0332c3ba33]Private Sub UserForm_Activate()
For a = 2 To 10
deg = deg & ";" & Replace(Columns(a).Width, ",", ".")
Next
ListBox1.ColumnCount = 9
ListBox1.ColumnWidths = Right(deg, Len(deg) - 1)
ListBox1.RowSource = "b2:j240"
End Sub
[/vb:1:0332c3ba33]
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
411
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
usta tam olarak istediğim sonucu alamadım. nedenini ben de anlamadım. ama bazı tam istediğim gibi bazılarında karaktarlerin yarısı görünmüyor. bazı sütunlar ise gerekenden çok fazla geniş. bir çok kez denedim ama sonuç alamadım
kodlarım şu şekilde;

Private Sub UserForm_Activate()
For a = 2 To 10
deg = deg & ";" & Replace(Columns(a).Width, ",", ".")
Next
ListBox1.ColumnCount = 9
ListBox1.ColumnWidths = Right(deg, Len(deg) - 1)
ListBox1.RowSource = "liste!b1:j240"
End Sub

ListBox1.RowSource = "liste!b2:j240" 'şeklinde de denedim
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Dosyanızı eklerseniz onun üzerinden gidelim.
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
411
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
dosya ekte.
açıklamalar kod sayfasında (listform)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Ekteki dosyayı inceleyin.
 
Son düzenleme:

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
411
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
usta ellerine sağlık. tam istediğim gibi ama şu satırda hata verdi o satırı devre dışı bırakınca hata olmuyor. bunu çözemedim.

Private Sub CommandButton1_Click()
Sheets("veritabani").Select
Selection.AutoFilter Field:=3, Criteria1:=ComboBox1.Value
Dim a As Integer
Sheets("veritabani").Select
Columns("a:m").Copy
Sheets("liste").Select
Columns("b").PasteSpecial
Application.CutCopyMode = False
Columns("b:j").EntireColumn.AutoFit
[b2] = 1
[b3] = 2
[b2:b3].AutoFill Destination:=Range("B2:B" & [b65536].End(3).Row)
Sheets("veritabani").Select
For a = 13 To 1 Step -1
If Controls("checkbox" & a).Value = False Then Sheets("liste").Columns(a).Delete
Next
liste.Hide
lstform.Show
Exit Sub
CheckBox2.SetFocus
End Sub
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bende hiç hata vermiyor, verdiği hata mesajı nedir?
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
411
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
run-time error 1004
range sınıfının autofill yönetimi başarısız

debug diyince
işlem kırmızı ile işaretlediğim yerde duruyor.
yani
[b2:b3].AutoFill Destination:=Range("B2:B" & [b65536].End(3).Row)
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Hata veren satırı aşağıdaki ile değiştirerek denermisiniz.

Sheets("liste").[b2:b3].AutoFill Destination:=Sheets("liste").Range("B2:B" & Sheets("liste").[b65536].End(3).Row)
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
411
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
sayın ustam aynı hatayı dediğin şekilde de aşamadım.
örnekte combobox içerisindeki seçeneklerden sadece "İL SAĞLIK MÜDÜRLÜĞÜ - ADIYAMAN" seçildiğinde hata vermiyor. Ama diğer seçenekte veya boş olması durumunda hep aynı hatayı vermeye devam ediyor.
saygılarımla....
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
kodların en başına ilk satır olarak "on error resume next" satırını ekleyin.
 

sbayyigit

Altın Üye
Katılım
11 Aralık 2004
Mesajlar
411
Excel Vers. ve Dili
Ms Office Pro Plus 2019
Altın Üyelik Bitiş Tarihi
23-02-2026
sayenizde hata sona ermiştir. tüm içtenliğimle saygılar sunarım.
 
Üst