Aktif Hücre Değişince Sayfadaki Listbox görünsün yada gizlensin

Katılım
22 Ocak 2006
Mesajlar
208
Excel Vers. ve Dili
Office 2003 , 2013 ve 2016 TR.
Merhaba.

Aşağıdaki kodları kullanıyorum ancak tam istediğim bu değil. Yapmak istediğim aktif hücre değişince Sayfadaki ListBox1 in görünmesi yada gizlenmesi. Hücre değeri değişmeden sadece aktif hücre değişince ListBox ın görünmesi.

ListBox da Enter e basınca veriyi yazacak. aktif hücre değişecek ve ListBox gizlenecek.

Yardımlarınız için şimdiden teşekkürler.

Örnek Dosyayı linkten indirebilirsiniz
http://s3.dosya.tc/server10/auuibw/Kitap1.xls.html


Kod:
Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Application.OnKey "{ENTER}"
ActiveCell.Value = ListBox1.Text
'Target.Cells.Offset(0, 1).Select
End Sub


Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = "5" Then
Target.Cells.Select
T = Target.Cells.Offset(1, 0).Top
L = ActiveCell.Left

ListBox1.Clear
ListBox1.ColumnCount = 1
ListBox1.List = Range("A1:A3").Value

ListBox1.Top = T
ListBox1.Left = L

ListBox1.Activate

End If
End Sub
 

Korhan Ayhan

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

Kod:
Dim Kontrol As Boolean

Private Sub ListBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    If KeyAscii = 13 Then
        ActiveCell.Value = ListBox1.Text
        Kontrol = False
    End If
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 5 Then
        Kontrol = True
        Target.Cells.Select
        T = Target.Cells.Offset(1, 0).Top
        L = Target.Left
        
        With ListBox1
            .Clear
            .ColumnCount = 1
            .List = Range("A1:A3").Value
            .Top = T
            .Left = L
            .Height = 50
            .Visible = True
            .Activate
            .IntegralHeight = False
        End With
    End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Column = 5 Then
        If Kontrol = False Then
            ListBox1.Visible = False
            Kontrol = True
        Else
            T = Target.Cells.Offset(1, 0).Top
            L = Target.Left
            
            With ListBox1
                .Clear
                .ColumnCount = 1
                .List = Range("A1:A3").Value
                .Top = T
                .Left = L
                .Height = 50
                .Visible = True
                .Activate
                .IntegralHeight = False
            End With
        End If
    End If
End Sub
 
Katılım
22 Ocak 2006
Mesajlar
208
Excel Vers. ve Dili
Office 2003 , 2013 ve 2016 TR.
Merhaba Korhan Bey.

İlginiz için teşekkür ederim.

Kod çalışıyor ancak bir sorunla karşılaştım.

Tam olarak yapmak istediğime ulaşamadım. Şöyle ifade edeyim.
Veri Sayfası var. Diğer sayfada da Tarih | Evrak No | İçerik Diye sütunlar var. Ben İçerik sütununa geldiğimde ListBox açılacakve benim hücrede yazdığım kelimeyi içeren Kelimeleri Veri sayfasından çekiş ListBox a aktaracak. Bende bu aktarımdan seçip Enter ile seçince hemen bir yan hücreye geçecek. ListBox gizlenecek.

Target.Cells.Offset(0, 1).Select

Kodunu aktif edince hata ile karşılaşıyorum. Birçok kod denedim ama bir türlü yapamadım.

http://s3.dosya.tc/server10/r1tsz6/Kitap1.xls.html

Örnek dosyayı yükledim. YArdımcı olursanız memnun olurum.

Esenlikler dilerim. İyi çalışmalar.
 
Katılım
22 Ocak 2006
Mesajlar
208
Excel Vers. ve Dili
Office 2003 , 2013 ve 2016 TR.
Merhaba Korhan bey.

İlginiz için teşekkürler.
Göndermiş olduğunuz linklerde altın üye olmadığım için indiremedim. Kod paylaşımında bulunmanız mümkün mü acaba.
 
Üst