• DİKKAT

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

Combobox'ta Yazılan Harflere Uygun Olmayanları Gösterme

Katılım
26 Ocak 2007
Mesajlar
4,625
Excel Vers. ve Dili
Ofis 2016
Merhaba arkadaşlar. Ekte sayın Korhan Ayhan üstadın harika bir çalışması var. Listede yazılan harflere uygun olanı kendisi buluyor, çok güzel. Peki şu yapılabilir mi ? Yazılan harflere uygun olanları ekranda bıraskın diğerlerini göstermesin. Örneğin "Ber" yazınca Berna, Berkay, Berrak ekranda kalın, Semih, Oğuz v.b. yani Ber ile başlamayanlar gözükmesin.
 

Ekli dosyalar

Merhaba,

Formdaki kodları silip aşağıdaki kodları uygulayıp deneyin.

Kod:
Private Sub ComboBox1_Change()
    Dim Dizi As Variant, X As Long, Say As Long
 
    ReDim Dizi(1 To 1)
 
    UserForm_Initialize
 
    If ComboBox1 <> "" Then
        For X = LBound(ComboBox1.List) To UBound(ComboBox1.List)
            If UCase(Replace(Replace(ComboBox1.List(X), "ı", "I"), "i", "İ")) Like _
                UCase(Replace(Replace(ComboBox1, "ı", "I"), "i", "İ")) & "*" Then
                Say = Say + 1
                ReDim Preserve Dizi(1 To Say)
                Dizi(Say) = ComboBox1.List(X)
            End If
        Next
 
        If Say > 0 Then
            ComboBox1.List = WorksheetFunction.Transpose(Dizi)
            ComboBox1.DropDown
        Else
            MsgBox "Uygun kayıt bulunamadı !", vbCritical
            ComboBox1 = Empty
            UserForm_Initialize
        End If
    End If
End Sub
 
Private Sub UserForm_Initialize()
    Dim Sutun As Integer, Satir As Long

    Sutun = Columns.Count
    ComboBox1.MatchEntry = fmMatchEntryNone
    Columns(Sutun).Clear
    Columns(1).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Cells(1, Sutun), Unique:=True
    Columns(Sutun).Sort Key1:=Cells(1, Sutun), Order1:=xlAscending, Header:=xlGuess, _
    OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
    Satir = Cells(Rows.Count, Sutun).End(3).Row
    ComboBox1.List = WorksheetFunction.Transpose(Range(Cells(2, Sutun), Cells(Satir, Sutun)))
    Columns(Sutun).Clear
End Sub
 
Çok teşekkür ederim sayın Korhan Ayhan. Kod şu şekilde çalıştı : ilk harfi yazınca uygun bulduğu bir tanesini seçiyor, uygun olan diğerlerini ekrana getirmiyor.
 
Merhaba,

Üstteki mesajımdaki koda ekleme yaptım. Tekrar deneyiniz.
 
Harikulade oldu sayın Korhan Ayhan. Çok teşekkür ederim. Combo Box te seçileni C sütununa kayıt etmek mümkün mü acaba ?
 
Bu arada yine forumdan Allah razı olsun, 5. mesaja çare buldum. Kodu aşağıda, ilgilenenlere faydası olabilir.

Private Sub CommandButton1_Click()
Sheets("Sayfa1").Select
sonsat = WorksheetFunction.CountA(Range("C1:C100"))
If sonsat >= 80 Then
MsgBox "SATIR DOLDU..!!" & vbLf & "KAYIT YAPAMAZSINIZ..!!", vbCritical
Exit Sub
End If
Cells(sonsat + 1, "C").Value = ComboBox1.Value
ComboBox1.Value = ""
MsgBox "KAYIT YAPILDI"
End Sub
 
Sayın Korhan Ayhan, Combobox'a yazılanın listede (rowsource) yer almayan bir seçim olmasını engelleyebilir miyiz ?
 
Merhaba,

Kodu tekrar revize ettim. Denermisiniz.
 
Şimdi çok çok daha şık oldu sayın Korhan Ayhan. Allah sizden razı olsun.
 
Sayın Korhan Ayhan, belki çok gerekli değil ancak şöyle bir özellik olabilir mi ? C Sütunu tıklandığında User Form1 kendiliğinden açılması mümkün olabilir i ?
 
Merhaba,

Bu işlemin gerçekleşmesi gereken sayfanızın kod bölümüne aşağıdaki kodu uygulayın.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 3 Then
        UserForm1.Show 0
    Else
        Unload UserForm1
    End If
End Sub
 
Geri
Üst