Listbox özellik

Katılım
1 Ekim 2004
Mesajlar
206
Merhaba,

Bir userform üzerine listbox nesnesi ekledim.Bu listboxda A1:B20 hücreleri görünüyor.

1-Görünen hücreler excelde sağa dayalı ,listboxta sola dayalı çıkıyor.Listbox üzerinde nasıl sağa yaslayabiliriz.

2-Listbox üzerinde kılavuz çilgilerini nasıl gösterebiliriz.

Saygılarımla,
 

Korhan Ayhan

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

Listboxta sütun bazında biçimlendirme yapmazsınız. Verileri sağa yaslı,sola yaslı,ortalı gösterebilirsiniz. Ama bu biçimlendirme tüm sütunlar için geçerli olur. Yani sağa yaslı dediğiniz zaman listelenen tüm veriler sağa yaslı görünür.

Listbox üzerinde kılavuz çizgilerini gösteremezsiniz.

Bahsettiğiniz işlemler için Listview nesnesi daha uygundur.
 

Korhan Ayhan

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

Sisteminizde MSCOMCTL.OCX nesnesini aktif hale getirmeniz gerekiyor. Eğer sizde yoksa netten indirip sisteminize register etmeniz gerekiyor.
 

Korhan Ayhan

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

İlk olarak MSCOMCTL.OCX dosyasını "C:\Windows\System32" klasörü içine kopyalayın.

Daha sonra başlat-çalıştır kutusuna aşağıdaki kodu yazın ve enter tuşuna basıp bekleyin. Bir süre sonra ilgili nesnenin register edildiğine dair bir uyarı mesajı alacaksınız.

Kod:
regsvr32 c:\Windows\system32\MSCOMCTL.OCX
Bu uyarıdan sonra boş bir excel dosyası açın. VBA bölümüne geçin. TOOLS-REFERENCES menüsünden BROWSE seçeneğini tıklayın. Açılan pencerede DOSYA ADI bölümüne MSCOMCTL.OCX yazıp enter tuşuna basın. Böylece ilgili nesneyi toolbarınıza eklemiş olursunuz. Ve nesneyi userform üzerine ekleyerek kullanabilirsiniz.
 
Katılım
1 Ekim 2004
Mesajlar
206
Bütün işlemleri harfiyen yerine getirdim.Yine de tollbox üzerinde listview nesnesini göremiyorum.
İşlemleri yaptıktan sonra references bölümünde "Microsoft Windows Common Controls 6.0 (SP6)" listeye işaretli olarak eklendi.Ancak tollbox üzerinde bir değişiklik olmadı.

Saygılarımla,
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Korhan Bey Selamlar.
Userform Listbox F sütununda 2-780 satırlarındaki hücreleri listelerken arada 100'e yakın boş hücre var bu boş hücreleri atlayarak sadece dolu hücreleri nasıl listeletebiliriz.
 

Korhan Ayhan

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

C++:
Private Sub UserForm_Initialize()
    Dim Veri As Range
    
    ListBox1.Clear
    
    For Each Veri In Range("F2:F780")
        If Veri.Value <> "" Then ListBox1.AddItem Veri.Value
    Next
End Sub
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Korhan Bey ilginize Teşekkürler.
sizin gönderdiğiniz kod'u ben formuma uyarlayamadım. Olay şu 2 tane Listbox var Bu Kur'an-ı Kerim için oluşturduğum bir tasarım Listbox1 deki sure isimlerine tıklattığımda 2 adet Textbox'un birine Arapça ayetleri diğerine Meali surenin tamamı geliyor. Listbox2 ye ise O surenin sayfa olarak sayfa numaraları geliyor. ama sure ismi de satırdaki surenin isminin olduğu hücreyi atlamasını istiyorum.
Aşağıdaki şekilde kırmızı ile işaretlenen kısımdaki sure isminin olduğu hücreleri silip oraların listboxda gönmesini istemiyorum. sadece sayfa numaraları gelsin. Ben şu anki çalışan kodu aşağıya yazacağım siz değişikliklileri kod üzerinde uyarlamanız mümkün mü acaba
215872

Kod:
Private Sub ListBox1_Click()

'''''''''''''''''''''''''''
Application.ScreenUpdating = False
Dim ADI As Variant
On Error Resume Next
ADI = ListBox1.Value
Set ALAN = Range("a2:g780").Find(What:=ADI)
Application.GoTo Reference:=Range(ALAN.Address), _
Scroll:=False
Selection.AutoFilter Field:=2, Criteria1:=ListBox1.Value & "*"
If ADI = "" Then
Selection.AutoFilter Field:=2
End If


f = WorksheetFunction.CountA(Sheets("kuran").Range("f2:f780"))
Sheets("kuran").Unprotect


Set rng = Sheets("kuran").Range("f2:f" & f + 8).SpecialCells(xlCellTypeVisible)
With ListBox2
.Clear
.RowSource = ""
End With

For Each rngCell In rng
ListBox2.AddItem rngCell.Value
Next rngCell

Application.EnableEvents = True
Application.ScreenUpdating = True

''''''''''''''''''''
Dim suread As Range
Dim aciklama As String, icerik As String
Textbox1.BackStyle = fmBackStyleOpaque
TextBox3.BackStyle = fmBackStyleOpaque
TextBox4.BackStyle = fmBackStyleOpaque
For Each suread In ThisWorkbook.Worksheets("KURAN").Range("B2:B780")
If suread = ListBox1.Text Then
If suread.Offset(0, 1) = "Açıklama" Then
aciklama = aciklama & suread.Offset(0, 2)
Metin = Metin & suread.Offset(0, 3)

Else
icerik = icerik & suread.Offset(0, 2)
Metin = Metin & suread.Offset(0, 3)

End If
End If

Next suread
Me.Caption = "KUR'ÂN-I KERÎM" & " - " & ListBox1.Text & " - TAMAMI"
Label14.Caption = ListBox1.Text & " - SAYFA LİSTESİ"
Textbox1.Text = aciklama
TextBox3.Text = icerik
TextBox4.Text = Metin
TextBox8.Text = "Tamamı"
TextBox7.Text = ListBox1.Text

'''''''''''''''''''''''''''''''''''2
Dim hWnd As Long
hWnd = FindWindowA(vbNullString, Me.Caption)
SetWindowLongA hWnd, -16, GetWindowLongA(hWnd, -16) Or &H35000

End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,190
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu şekilde uyarlayamam. Örnek dosya eklemelisiniz.
 
Üst