doğrulama açılır listenin kullanımı

Katılım
15 Temmuz 2004
Mesajlar
4
Doğrulama ile açılır liste elde edebiliyoruz, ancak listemiz çok uzun olunca istenen seçeneğe ulaşmak çok zor oluyor.

Hücrede hem açılır liste olsun hem de direk karakter girdiğimizde o karakterle başlayan seçenekler listelensin diğerleri elensin istiyorum ama yapılabilir mi bilmiyorum.

Teşekkürler...
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Eğer VBA ile aran fena değilse, yapılır....
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Evet..... ComboBox ve bir de TextBox kullanırsan, kullanışlı bir şey olur.

Çalışma sayfası üzerine 1 adet ComboBox ve 1 adet TextBox nesnesini ekldikten sonra, TextBox1 nesnesine girdiğin karakterlere uyan veriler ComboBox1 nesnesinde yer alır.

Burada kullanılacak olan ComboBox1 ve TextBox1 nesneleri "Formlar" araç çubuğundan değil "Kontroller" araç çubuğundan eklenmelidir.

Yani nesneler ActiveX olmalıdır.

Bu nesneleri çalışma sayfası üzerine yerleştirdikten sonra, eğer sözkonusu verilerin de sayfanın A sütunundaki hücrelerde alt alta sıralanmışsa, aşağıdaki kodu ilgili sayfanın kod modulüne yazdıktan sonra TextBox1 nesnesine giriş yapıp, uyan verileri ComboBox1 nesnesinde görebilirsin.

Kod:
Private Sub TextBox1_Change()
    Dim NoA As Long
    Dim i As Integer
    Dim Temp As String
    ComboBox1.Clear
    NoA = Cells(65536, 1).End(xlUp).Row
    Temp = TextBox1
        For i = 1 To NoA
            If LCase(Left(Range("A" & i), Len(Temp))) = LCase(Temp) Then
                ComboBox1.AddItem Range("A" & i)
            End If
        Next
End Sub


Ã?rneğin A sütundaki verilerin;

Ali
Aliye
Ahmet
Veli
Velioğlu
Cemil
Cemal
...
..
.

ise ve sen TextBox1 nesnesine A girersen, ComboBox1 nesnesinde Ali, Aliye ve Ahmet yer alır. Eğer devam edip, Al yazarsan bu kez Ali ve Aliye yer alır. Veya Ah yazarsan sadece Ahmet yer alır........ gibi.
 
Katılım
25 Ağustos 2004
Mesajlar
131
Excel Vers. ve Dili
Ev -> Office 2016 Tükçe
İş -> Office 2016 Tükçe
Altın Üyelik Bitiş Tarihi
04/01/2022
ÇALIÞMA

EKteki dosyayı burdaki koddan yararlanarak yaptım belki bu hali işini yarayacak birisi olabilir buna ek olarak birkaç özellik eklemeyi düşündüm ama beceremedim ilki süzülecek değerlerim başka bir excel dosyasından alınması ikincisi combo boxta aynı değerlerden sadece bir tanesinin çıkması üç ise her comboboxa göre diğer combo boxların işlemesi

bunlarda olursa yeme de yanın da yat :D
iyi çalışmalar
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
@Fenomen;

Aşağıdaki kod kapalı durumdaki C:\Test.xls dosyasının Sheet1 isimli sayfasındaki A1:A50 aralığındaki verileri, aralarında tekrarlan benzer verileri ayıkladıktan sonra UserForm üzerindeki ComboBox1 nesnesine aktarır.

Kod:
Const SourcePath As String = "C:\"
Const SourceFile As String = "Test.xls"
Const SourceSheet As String = "Sheet1"
'
Private Sub UserForm_Initialize()
    Dim MyComboArray()
    Dim MyArg As String
    Dim i As Integer, j As Integer
        For i = 1 To 50
            ReDim Preserve MyComboArray(i)
                MyArg = "'" & SourcePath & "[" & SourceFile & "]" & _
                        SourceSheet & "'!R" & i
            MyComboArray(i) = ExecuteExcel4Macro(MyArg & "C1")
        Next
        For i = 1 To UBound(MyComboArray)
            For j = i + 1 To UBound(MyComboArray) - 1
                If MyComboArray(i) = MyComboArray(j) Then MyComboArray(i) = ""
            Next
        Next
        For i = 1 To UBound(MyComboArray)
            If MyComboArray(i) <> "" And MyComboArray(i) <> 0 Then
                ComboBox1.AddItem MyComboArray(i)
            End If
        Next
    Erase MyComboArray
End Sub
 
Üst