ListBox' ta İsim Listeleme

Katılım
10 Haziran 2009
Mesajlar
166
Excel Vers. ve Dili
2003
Değerli site üyeleri bahsedeceğim konuda yardımcı olabilirseniz memnun olurum. Şöyle ki; Ekte göndermiş olduğum dosyada UserForm aracılığıyla kayıt yapmak istiyorum. Takıldığım nokta şu. Excel sayfası olarak kaydedilen "MEHMET, ALİ, MUSTAFA,....vb" gibi sayfa isimlerinin ListBox' ta listelenmesi ve ListBox' taki ilgili isme tıklatınca Excel' de ilgili sayfanın açılmasını ve ayrıca ListBox' ın üzerinde yer alan TextBox' a harf girilince girilen harfle başlayan isimlerin ListBox' ta sıralanması. Bu konuda yardımcı olabilir yada kaynak gösterebilirseniz memnun olurum. İlginiz ve yanıtlarınız için şimdiden teşekkür ederim. Saygılarımla.
 

Ekli dosyalar

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Dosyanız ekte.:cool:
 

Ekli dosyalar

Katılım
10 Haziran 2009
Mesajlar
166
Excel Vers. ve Dili
2003
Sayın Eren Gizlen üstadım yanıtın için çok teşekkür ederim. Tam istediğim buydu. Ancak ek olarak şuda mümkün olabilirmi acaba. ListBox' ta listelenen ismin üzerine çift tıklatınca o isme ait Excel sayfasını açmak mümkün mü. Yanıtınız ve ilginiz için şimiden teşekkür ederim. Saygılarımla.
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Eren Gizlen üstadım yanıtın için çok teşekkür ederim. Tam istediğim buydu. Ancak ek olarak şuda mümkün olabilirmi acaba. ListBox' ta listelenen ismin üzerine çift tıklatınca o isme ait Excel sayfasını açmak mümkün mü. Yanıtınız ve ilginiz için şimiden teşekkür ederim. Saygılarımla.
Yaptım.
2 numaralı mesajdan dosyayı indirebilirsiniz.:cool:
 
Katılım
10 Haziran 2009
Mesajlar
166
Excel Vers. ve Dili
2003
Sayın Evren Gizlen yanıtınız için teşekkür ederim. İstediğim oldu. Ancak VBA kısmına Module ekleyerek aşağıdaki kodlar aracılığıyla Excel' i gizleyerek UserForm' un açılması sağladığımda isme tıklattığımda Excel sayfası açılmıyor bunu nasıl çözümleyebilirim.
Kod:
Sub Auto_Open()
Application.Visible = False
UserForm2.Show
End Sub
 
Son düzenleme:

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Sayın Evren Gizlen yanıtınız için teşekkür ederim. İstediğim oldu. Ancak VBA kısmına Module ekleyerek aşağıdaki kodlar aracılığıyla Excel' i gizleyerek UserForm' un açılması sağladığımda isme tıklattığımda Excel sayfası açılmıyor bunu nasıl çözümleyebilirim.
Kod:
Sub Auto_Open()
Application.Visible = False
UserForm2.Show
End Sub
Exceli gizlediğiniz için göremezsiniz.
Görmek için listbox'ın double_click olayına aşağıdaki satırı ilave ediniz.
Kod:
application.visible=true
 
Katılım
10 Haziran 2009
Mesajlar
166
Excel Vers. ve Dili
2003
Sayın Evren Gizlen' in yardımlarıyla aşağıdaki kodlar aracılığıyla yukarıda bahsettiğim sorunları çözdüm. Ancak ListBox1' de boş alana tıklatınca
Run-time error '13' :
Type mistmach
uyarısı alıyorum. Yapmak istediğim ListBox1' de boş alana tıklatınca programın mesajla "Boş Alana Tıklayamazsınız" mesajı vermesini istiyorum. Epey uğraştım ama yapamadım. Yardımcı olabilirseniz memnun olurum. İlginiz ve yanıtlarınız için şimdiden teşekkür ederim. Saygılarımla.
Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
If ListBox1.ListCount < 1 Then Exit Sub
Sheets(ListBox1.Value).Select
Application.Visible = True
Unload UserForm2
End Sub
 

Orion1

Uzman
Uzman
Katılım
1 Mart 2005
Mesajlar
22,254
Excel Vers. ve Dili
Win7 Home Basic TR 64 Bit

Ofis-2010-TR 32 Bit
Onlar boş alanlar değiller.Siz boşluklarıda listboxta listelemişsiniz.Yani boş hücreleride listelemişsiniz.Listboxa boş hücreleri listelemezseniz problem çıkmaz.
O zaman işlemini yaptığınız hücreleri boş olarak almayın listboxa
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,318
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Sanırım siz ListBox nesnesi üzerindeki boş gri alandan bahsediyorsunuz. Aşağıdaki kod ile hata kontrolünü sağlayabilirsiniz.

Kod:
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    If ListBox1.ListCount < 1 Then Exit Sub
    On Error Resume Next
    Sheets(ListBox1.Value).Select
    If Err = 13 Then
    MsgBox "Boş alana tıklayamazsınız !"
    Exit Sub
    End If
    On Error GoTo 0
    Application.Visible = True
    Unload UserForm2
End Sub
Ayrıca sayfa isimlerini ararken "İ" harfinde problem yaşayabilirsiniz. Bunun için Evren beyin önerdiği kodu aşağıdaki şekilde düzenlerseniz sorun yaşamazsınız.

TextBox1 kodunu aşağıdaki şeilde değiştirin.

Kod:
Private Sub TextBox1_Change()
    Dim Sayfa As Worksheet
    
    ListBox1.Clear
    
    For Each Sayfa In Worksheets
        If Sayfa.Name <> "stokkodu" And Sayfa.Name <> "sablon" Then
            If UCase(Replace(Replace(Sayfa.Name, "i", "İ"), "ı", "I")) Like "*" & UCase(Replace(Replace(TextBox1.Text, "i", "İ"), "ı", "I")) & "*" Then
                ListBox1.AddItem Sayfa.Name
            End If
        End If
    Next
End Sub

UserForm_Initialize kodunu da aşağıdaki şekilde değiştirin.

Kod:
Private Sub UserForm_Initialize()
    Dim Sayfa As Worksheet
    
    For Each Sayfa In Worksheets
        If Sayfa.Name <> "stokkodu" And Sayfa.Name <> "sablon" Then
            If UCase(Replace(Replace(Sayfa.Name, "i", "İ"), "ı", "I")) Like "*" & UCase(Replace(Replace(TextBox1.Text, "i", "İ"), "ı", "I")) & "*" Then
                ListBox1.AddItem Sayfa.Name
            End If
        End If
    Next
End Sub
 
Katılım
10 Haziran 2009
Mesajlar
166
Excel Vers. ve Dili
2003
Sayın Korhan AYHAN bahsettiğiniz üzere sorunum tamda buydu. İfade ederken eksik ifade etmişim. Verdiğiniz kodlar sayesinde sorunumu çözdüm. İlginiz ve yanıtınız için teşekkür ederim. Saygılarımla.
 
Üst