• DİKKAT

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

ListBox Sütun Genişliği

Katılım
11 Aralık 2004
Mesajlar
419
Excel Vers. ve Dili
Ms Office Pro Plus 2019
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
 
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
 
Merhaba,

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


Selamlar.
 
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.
 
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]
 
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
 
Dosyanızı eklerseniz onun üzerinden gidelim.
 
Ekteki dosyayı inceleyin.
 
Son düzenleme:
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
 
Bende hiç hata vermiyor, verdiği hata mesajı nedir?
 
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)
 
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)
 
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....
 
kodların en başına ilk satır olarak "on error resume next" satırını ekleyin.
 
sayenizde hata sona ermiştir. tüm içtenliğimle saygılar sunarım.
 
Geri
Üst