Listboxta genel sezgisel arama

Katılım
18 Temmuz 2012
Mesajlar
15
Excel Vers. ve Dili
C# VB
Altın Üyelik Bitiş Tarihi
02-02-2023
Merhabalar,

Bir form düzenlendim önce içeriğini anlatayım sonra ne yapmak istediğimi olabilir mi bilmiyorum çok araştırdım bulmadım çünkü,
Userform1

Formda Combobox1' içinde aylar bulunmakta bu aylar aşağıda kayıt sayfası olarak açıldı.
Combobox1 seçtiğim ay' sayfasına texboxlardan veri kaydedip günceleyebiliyorum.
Ayriyetten combobox'ta açtığım ay aşağıda listbox'ta verileri gösteriyor. Arama kutusuna yazdığım yazdığımı bütün listbox'ta arasın ve bana aradığımı göstersin istiyorum
sezgisel arama yapmak istiyorum kısaca;
veya başka türlü bir arama yapabilirmiyim.

Birde listboxa kaydettiğim tarih üsttüne tıkladığımda texboxlara geliyor fakat tarihler 44583 gibi bu şekilde geliyor format yazıyorum fakat yine aynı sorun oluyor nasıl yapabilirim yardımlarınızı bekliyorum teşekkürler.


Kod:
Private Sub CommandButton4_Click()
'güncelleme Butonu
Dim sf As Worksheet
Dim sfname  As String
If ComboBox1 = "" Then MsgBox "Seite nicht gefunden": Exit Sub
sfname = ComboBox1
Set sf = Sheets(sfname)
secili = lstkayitlar.ListIndex + 3
If lstkayitlar.ListIndex = -1 Then MsgBox "Keine Datei gefunden": Exit Sub
sor = MsgBox("Soll die Anfrage aktualisiert werden?", 68, "AKTUALİSİEREN")
If sor = 7 Then Exit Sub
        sf.Range("A" & secili).Value = TextBox1.Value
        sf.Range("B" & secili).Value = TextBox2.Value
        sf.Range("C" & secili).Value = TextBox3.Value
        sf.Range("D" & secili).Value = TextBox4.Value
        sf.Range("E" & secili).Value = TextBox5.Value
        sf.Range("F" & secili).Value = TextBox6.Value
        sf.Range("G" & secili).Value = TextBox7.Value

Kayitlistele

End Sub


Private Sub ComboBox1_Change()
TextBox1.SetFocus

lblTitle.Caption = " KFZ Miete " & ComboBox1.Value
Kayitlistele
End Sub

Sub Kayitlistele()

Dim ds As Long
If ComboBox1.Value = Empty Then Exit Sub

ds = Sheets(ComboBox1.Value).Range("A200000").End(xlUp).Row
lstkayitlar.ColumnCount = 7
lstkayitlar.ColumnWidths = "100;80;80;80;80;80;80"
lstkayitlar.ColumnHeads = True
X = 0
For i = 1 To Worksheets.Count
    X = X + 1
    If InStr(Worksheets(i).Name, ComboBox1.Value) > 0 Then
        Exit For
    End If
Next i
shname = Worksheets(X).Name
lstkayitlar.RowSource = "'" & shname & "'!" & "A3:G" & ds + 1

End Sub

Private Sub CommandButton1_Click()
    Dim sor As Byte
    Dim ds As Long
    
    If ComboBox1.ListIndex < 0 Or TextBox1.Value = "" Or TextBox2.Value = "" Or TextBox3.Value = "" Or TextBox4.Value = "" Then
        frmMesaj.lblMesaj.Caption = "Fehlende Informationen. Bitte prüfen!!"
        frmMesaj.Show
        Exit Sub
End If
    ds = Sheets(ComboBox1.Value).Range("A200000").End(xlUp).Row
    
    sor = MsgBox("soll die anfrage gespeichert werden ?", 68, "SPEİCHERN")
    If sor = 7 Then Exit Sub
        Sheets(ComboBox1.Value).Range("A" & ds + 1).Value = TextBox1.Value
        Sheets(ComboBox1.Value).Range("B" & ds + 1).Value = TextBox2.Value
        Sheets(ComboBox1.Value).Range("C" & ds + 1).Value = TextBox3.Value
        Sheets(ComboBox1.Value).Range("D" & ds + 1).Value = TextBox4.Value
        Sheets(ComboBox1.Value).Range("E" & ds + 1).Value = TextBox5.Value
        Sheets(ComboBox1.Value).Range("F" & ds + 1).Value = TextBox6.Value
        Sheets(ComboBox1.Value).Range("G" & ds + 1).Value = TextBox7.Value
End Sub


Private Sub lstkayitlar_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If lstkayitlar.ListIndex < 0 Then Exit Sub
For a = 0 To 6
Controls("TextBox" & a + 1) = lstkayitlar.Column(a)
Next
sat = lstkayitlar.ListIndex + 2
End Sub


Private Sub UserForm_Initialize()
sayfaktar
End Sub

Private Sub sayfaktar()
Dim X As Integer

For X = 2 To Sheets.Count
    ComboBox1.AddItem (Sheets(X).Name)
Next

End Sub
 

Ekli dosyalar

Katılım
18 Temmuz 2012
Mesajlar
15
Excel Vers. ve Dili
C# VB
Altın Üyelik Bitiş Tarihi
02-02-2023
yokmu yardım edebilecek birisi
 

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
Birde listboxa kaydettiğim tarih üsttüne tıkladığımda texboxlara geliyor fakat tarihler 44583 gibi bu şekilde geliyor format yazıyorum fakat yine aynı sorun oluyor nasıl yapabilirim yardımlarınızı bekliyorum teşekkürler.
Yukarıdaki sorunuz için ilgili kodu aşağıdaki ile değiştirin. İlk sorunuz için arama kriterlerini yazmamışsınız. Yani arama tüm sayfalarda ve hangi sütunlarda yapılacaktır.

Kod:
Private Sub lstkayitlar_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

If lstkayitlar.ListIndex < 0 Then Exit Sub

For a = 0 To 6

If a = 3 Or a = 4 Then
Controls("TextBox" & a + 1) = Format(lstkayitlar.Column(a), "dd.mm.yyyy")
Else
Controls("TextBox" & a + 1) = lstkayitlar.Column(a)
End If

Next
sat = lstkayitlar.ListIndex + 2

End Sub
 
Katılım
18 Temmuz 2012
Mesajlar
15
Excel Vers. ve Dili
C# VB
Altın Üyelik Bitiş Tarihi
02-02-2023
Yukarıdaki sorunuz için ilgili kodu aşağıdaki ile değiştirin. İlk sorunuz için arama kriterlerini yazmamışsınız. Yani arama tüm sayfalarda ve hangi sütunlarda yapılacaktır.

Kod:
Private Sub lstkayitlar_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

If lstkayitlar.ListIndex < 0 Then Exit Sub

For a = 0 To 6

If a = 3 Or a = 4 Then
Controls("TextBox" & a + 1) = Format(lstkayitlar.Column(a), "dd.mm.yyyy")
Else
Controls("TextBox" & a + 1) = lstkayitlar.Column(a)
End If

Next
sat = lstkayitlar.ListIndex + 2

End Sub
Verdiğiniz yanıt için teşekkür ederim. 1 ve 2.ci sütunlarda yapılacak arama,
 
Üst