AccessTr.neT

Tam Versiyon: ComboBoxda Sayfaları Göstermek
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2 3 4 5 6 7 8 9
kastettiğiniz şeyi biraz daha açıklar mısınız?
odaklanınca liste açılsın mı istiyorsunuz yoksa girdiğiniz harfe göre sadece ilgili sayfaların adı mı listeye alınsın?
Hocam Yanlış yazmışım kusuruma bakmayın. ComboBox1 de girdiğiniz harfe göre sadece ilgili sayfaların adlarını ListBox1 listelesin.
Sizin alttaki gibi kodlarınız var.Bununla UserForm1 açtırılıyor.
Yani tam olarak ne yapmak istiyorsunuz,alttaki kod silinecekmi mesela.

Private Sub ComboBox1_Change()
On Error Resume Next
Sheets(ComboBox1.Text).Select
Unload UserForm2
UserForm1.Show
End Sub
Hocam  aşağıdaki kodlardan silinmesi gereken kodları sil ComboBox1 e veri girdiğim zaman UserForm1 açılmasın.

ComboBox1 harfe göre girdiğimiz sayfa isleri ListBox1 sıralansın.

Zaten LİstBox1 e çift tıkladığım zaman UserForm1 açılıyor.
Berduş hocamızın ekleme kodundan devam edilimiştir.
İsterseniz önceki yazdığım kodlada ayarlanabilir atnı mantıkla.
Private Sub ComboBox1_Change()

    Dim syf As Worksheet, k As Byte
    Dim Ekleme As String

    Me.ListBox1.Clear
    istenmeyen = Array("", "ÞABLON", "Sayfa1", "liste")
    For k = 1 To UBound(istenmeyen, 1)
        Ekleme = Ekleme & "|" & istenmeyen(k) & "|"
    Next k
   
    For Each syf In Worksheets
        If InStr(1, Ekleme, "|" & syf.Name & "|", 1) = 0 Then
        If LCase(syf.Name) Like "*" & LCase(Me.ComboBox1.Value) & "*" Then Me.ListBox1.AddItem syf.Name
    End If
    Next syf
    If Me.ComboBox1.Value = Empty Then Me.ListBox1.Clear
    Set syf = Nothing
End Sub

Buda benim yaptığım kodla.Tabii sayfa asları aynı olmalı.Normalde Lcase felan yazılabilir lakin gerek yok.


Private Sub ComboBox1_Change()
    Dim syf As Worksheet
   
    Me.ListBox1.Clear
    For Each syf In Worksheets
        If syf.Name <> "sayfa1" And syf.Name <> "liste" And syf.Name <> "?ABLON" Then
        If LCase(syf.Name) Like "*" & LCase(Me.ComboBox1.Value) & "*" Then Me.ListBox1.AddItem syf.Name
    End If
    Next syf
    If Me.ComboBox1.Value = Empty Then Me.ListBox1.Clear
    Set syf = Nothing
End Sub
Çok teşekkürler Hocalarım ellerinize sağlık.

Hocam eklediğiniz kodları UserForm2 ye ekledim. ComaBox1 A harfiyle başlayan kelimeleri girdiğimiz zaman ListBox1 de bütün A harfi ile başlayan isimleri listeliyor. A nın dışındaki harflerle başlayan kelimeleri girdiğimiz zaman sadece en üstteki ismi bir adet olarak ListBos1 de gösteriyor.  Diğerlerini göstermiyor.
Sayfalar: 1 2 3 4 5 6 7 8 9