ListBox Sütun Ölçülerini Ayarlama

Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
Merhabalar,

Ekteki dosyamda bulunan listbox sütun genşliklerinde problem yaşıyorum. Kimileri birbirlerine çok uzak kalıyor kimleri ise sıkışıyor.

Aşağıda başka bir çalışma kitabında kullanmış olduğum sütun ölçüleri ile ilgili kodlar benzer bir kod ile bu konuyu nasıl çözebilirim.

Kod:
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 22
ListBox1.RowSource = "DATA!KAYITSAYFASI"
ListBox1.ColumnWidths = "13;35;70;50;55;60;50;50;50;40;40;40;40;40;40;40;40;40;40;40;40;40;40"
Module2.MaxMinButton (Me.Caption)
End Sub

Yardımları için herkese teşekkür eder, iyi çalışmalar dilerim.

Saygılarımla,
 

Ekli dosyalar

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.

Kod:
UserForm_Activate
Prosedür içinde herhangi bir satıra aşağıdaki satırı kopyalayın
Kod:
lstFiltre.ColumnWidths = "13;35;70;50;55;60;50;50;50;40;40;40;40;40;40;40;40;40;40;40;40;40;40"
İkinci olarak ListrBox un ColumnHeads özelliğini True yapın. Kendi eklediğiniz başlıkları silebilirsiniz. Sayfadaki başlıklar gelecektir.
 
Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
@Muzaffer Ali hocam merhaba,

Başlıkları bilerek false yaptım. Ancak genişlik olayını bir türlü çözemedim. Vermiş olduğunuz kodu denedim ancak çok profesyonel olmadığımdan beceremedim. Dosya içerisinde kullanmış oldğum kod aşağıdaki gibidir. Bu kodu ne şekilde revize etmem gerekir.

Yardımcı olabilirseniz çok sevinirim.

Saygılarımla,



Kod:
Sub ARAMA()
Application.ScreenUpdating = 0
With Sheets("DATA")
    lstFiltre.RowSource = ""
    son = .Cells(Rows.Count, 1).End(3).Row
    If son < 7 Then Exit Sub
    v = .Range("A7:W" & son).Value
    ReDim snc(1 To UBound(v), 1 To 23)
    For a = 1 To UBound(v)
        For k = 2 To 13
            If k = 9 Then k = 12
            If k = 2 Or k = 12 Or k = 13 Then nsn = "Combobox" Else: nsn = "Textbox"
            vdeg = UCase(Replace(Replace(v(a, k), "ı", "I"), "i", "İ"))
            ndeg = UCase(Replace(Replace(Me.Controls(nsn & k), "ı", "I"), "i", "İ"))
            If InStr(vdeg, ndeg) > 0 Or Me.Controls(nsn & k) = "" Then say = say + 1
        Next
        If say = 9 Then: s = s + 1: For u = 1 To 23: snc(s, u) = v(a, u): Next ': End If
        say = 0
    Next
    If s > 0 Then
        With Sheets("DataFiltre")
            .Range("A2:X" & Rows.Count).ClearContents
            .[A2].Resize(s, 23) = snc
            Set VeriAlan = .Range("A2:X" & s + 1)
            lstFiltre.RowSource = VeriAlan.Address(, , , True) 'listbox a veri alma
        End With
    End If
End With
Application.ScreenUpdating = 1
End Sub
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Dosyanız ekte.
Başlıkları false yaparsanız başlıklarla sütunların yerlerini denk getirmek için çok uğraşırsınız.
Başlık olsa daha iyi olur.

2. bir konu listBoxun ColumnWidths özelliğine elinizle kolon genişliği yazmışsınız. Onun için değişmiyordu onu da sildim.
 

Ekli dosyalar

Katılım
18 Kasım 2012
Mesajlar
423
Excel Vers. ve Dili
Microsoft Office 365
Altın Üyelik Bitiş Tarihi
04-07-2024
@Muzaffer Ali hocam çok çok teşekkür ederim. Ellerinize sağlık.

Bir mahsuru yok ise aynı dosya ile alakalı farklı bir konuda bilginize danışmak istiyorum.

"K" sütununda geçen ana hizmetler için Combobox12 yerine option button kullanmak istiyorum. (yaklaşık 9 hizmet için kullanacağım)

Bu değişikliği ne şekilde ve nasıl yapabilirim ? Bir hizmet ismine dayalı örnek option eklemesi yapabilme şansınız olursa belki ben gerisini getirebilirim.

"Umarım :)" bu konuda yardımcı olma şansınız var mıdır ?

Saygılarımla,
 

ynmcan

Altın Üye
Katılım
30 Ağustos 2008
Mesajlar
677
Excel Vers. ve Dili
2010 türkçe
Altın Üyelik Bitiş Tarihi
29-05-2025
merhaba,
Aşağıdaki kodu kullanabilirsiniz.
ancak sayfadaki sütun genişliklerini değiştirmemeniz gerekir
dosyanız ekte
Kod:
Kod:
For a = 1 To 23
deg = deg & ";" & Replace(Columns(a).Width, ",", ".")
Next
lstFiltre.ColumnCount = 23
lstFiltre.ColumnWidths = Right(deg, Len(deg) - 1)
 

Ekli dosyalar

Üst