listbox üst sabit satır

Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Kod:
Private Sub arama_kriteri_Change()
Dim S1 As Worksheet, S2 As Worksheet, Veri As Range, say As Long
 Set S2 = Sheets("MüşteriBilgileri")
    ReDim Dizi(1 To 8, 1 To 1)
    If arama_kriteri = "" Then
   UserForm_Initialize
    Else
        say = 0
   
    
        Set Data = S2.Range("A1:P" & S2.Cells(Rows.Count, 1).End(3).Row)
        For Each Veri In Data
            If Veri.Column = 1 Then
                If UCase(Replace(Replace(Veri, "i", "İ"), "ı", "I")) Like _
               UCase(Replace(Replace(arama_kriteri, "i", "İ"), "ı", "I")) & "*" Then
                
                    say = say + 1
                    ReDim Preserve Dizi(1 To 8, 1 To say)
                                       
                    Dizi(1, say) = Veri
                    Dizi(2, say) = Veri.Offset(0, 1)
                    Dizi(3, say) = Veri.Offset(0, 6)
                    Dizi(4, say) = Veri.Offset(0, 11)
                    Dizi(5, say) = Veri.Offset(0, 12)
                    Dizi(6, say) = Veri.Offset(0, 13)
                    Dizi(7, say) = Veri.Offset(0, 14)
                    Dizi(8, say) = Veri.Offset(0, 15)
                End If
            End If
        Next
        
        If say > 0 Then ListBox1.Column = Dizi
    End If
End Sub



Private Sub ListBox1_Click()

End Sub

Private Sub UserForm_Initialize()

    
    ListBox1.ColumnCount = 8
    ReDim Dizi(1 To 8, 1 To 1)
    Satir = Cells(Rows.Count, 1).End(3).Row
    
    For X = 1 To Satir
       
        say = say + 1
        
        ReDim Preserve Dizi(1 To 8, 1 To say)
         Dizi(1, 1) = Cells(1, 1)
        Dizi(1, say) = Cells(X, 1)
        Dizi(2, say) = Cells(X, 2)
        Dizi(3, say) = Cells(X, 3)
        Dizi(4, say) = Cells(X, 4)
        Dizi(5, say) = Cells(X, 5)
        Dizi(6, say) = Cells(X, 6)
        Dizi(7, say) = Cells(X, 7)
        Dizi(8, say) = Cells(X, 8)
      Next
    
    If say > 0 Then ListBox1.Column = Dizi
End Sub
Yukarıdaki kodlarla listboxda filreleme yapıyorum.
Fakat en üst satırı sabit bırakmak istiyorum.
columnheads olayını da true yaptımm fakat haliyle boş satır oldu.
Forumda bahsi geçmiş fakat tam netice yok gibi ; ad tanımla ile yol gösterilmiş ama nasıl olacak anlamadım açıkcası.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,124
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Listbox nesnesinde ilk satırı sabitlemek için Rowsource yöntemini kullanabilirsiniz.

Arama yönteminde Listbox nesnesine üst satırı sabitleyemezsiniz.

Bunun yerine Listbox nesnesinin hemen üstüne Label nesneleri akleyerek başlıkları kendiniz oluşturmalısınız.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Teşekkürler Korhan bey ;
Mümkün olmayan birşeyle uğraşıp duruyormuşum sanırım.
Label ekleyerek düzenleyeceğim.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Peki labelların ebatlarını nasıl ayarlarım listeye göre ?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,124
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Label genişliklerini bir kereye mahsus elle standart olarak ayarlayabilirsiniz.

Ya da sayfadaki sütun genişliklerini baz alarak kod ile label genişliklerini ayarlama şansınız var.
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Kod:
Private Sub UserForm_Initialize()

    
    ListBox1.ColumnCount = 8
    For clmn = 1 To 8
ebat = Sheets("MüşteriBilgileri").Columns(clmn).ColumnWidth
      ListBox1.ColumnWidths = ebat * 4
      Next
1

Bu şekilde bir kod hazırladım UserForm_Initialize olayına fakat istediğimi yapamadım haliyle .
Yapmak istediğim sayfadaki sütun genişliği neyse listboxtaki de aynı olsun şeklinde idi
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,124
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bu şekilde deneyin.

Kod:
Private Sub UserForm_Initialize()
    ListBox1.ColumnCount = 8
    ListBox1.RowSource = "A1:H10"
    
    For X = 1 To 8
        If Genislik = "" Then
            Genislik = Val(Sheets("Sayfa1").Columns(X).ColumnWidth) * 6
        Else
            Genislik = Genislik & "," & Val(Sheets("Sayfa1").Columns(X).ColumnWidth) * 6
        End If
    Next
    
    ListBox1.ColumnWidths = Genislik
End Sub
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Teşekkürler Korhan bey ...
Sorularım uzadı gitti kusura bakmayın :)
Bir yerde daha takıldım.
Bir dögü kurup şartlama yapmam gerekiyor.
eğer listboxın 2 sutunundaki çift tıkladığım veri sayfadaki 2. sütunundaki veriye eşitse ki eşittir zaten. Bu eşit olan satırdaki verileri bir sayfaya almayı düşünüyorum.
Fakat listbox1.value dediğimde haliyle listboxın ilk sutunundaki veriyi baz alıyor.
2. sutunundaki veriye göre nasıl yaparım.?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,124
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Aşağıdaki gibi deneyin.

Kod:
MsgBox ListBox1.Column(1)
 
Katılım
6 Temmuz 2008
Mesajlar
1,875
Excel Vers. ve Dili
OFFİCE 2010- TÜRKÇE
Altın Üyelik Bitiş Tarihi
22-12-2019
Tekrar teşekkürler.
Ben de sonuna ".value" koymuştum ve hata almıştım.
Demek ki herşeye "value" konulmuyor :)
 
Üst