• DİKKAT

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

hücreye yazılmaya başlayanı başka bir sayfadan sorgulama?

udentr2002

Altın Üye
Katılım
5 Kasım 2006
Mesajlar
1,503
Excel Vers. ve Dili
iş yerinde Office 365
evde Office 365
Arkadaşlar ekli dosyada da anlatmaya çalıştım Sayfa1 de a stünunda herhangi bir hücreye tıkaldığımda sayfa2 deki a stünuna girmiş olduğum isimlerin listesi açılan bir listbox nesnesi gibi görünecek ve o hücreye yazı yazmaya başaldığım an sayfa2 de varsa o isim onu yazacak ekli dosyada daha açıkalyıv-cı olarak anlattım yardımcı olursanız sevinirim
 
Selamlar,

Hücreye içerisinde aktif durumda iken çalıştırılacak bir kod bulunmamaktadır. Bunun yerine hücreyi seçtiğiniz anda bir form açılabilir ve formdaki listeden seçim yaparak aktif hücreye bu veri aktarılabilir. Ekte örnek bir dosya hazırladım. Umarım faydası olur.
 
Hocam burda userform oluşturmuşsunuz omu excel de form oluşturma kısmındanmı yapıyosunuz yoksa makro düzenleme kısmındanmı birde kullandığınız makro komutlarını özetle açıklarmısınız
 
Selamlar,

Sn. korkoryan,

Formu ALT+F11 tuşlarıyla açacağınız sayfada oluşturdum. Kodlar özetle aşağıdaki işlevleri yapmaktadır.

Sayfa1 in kod bölümündeki kod;

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Intersect(Target, [A:A]) Is Nothing Then Exit Sub
    UserForm1.Show
    UserForm1.Top = ActiveCell.Top + 100
    UserForm1.Left = ActiveCell.Left + 100
End Sub

A sütununda herhangi bir hücre seçildiğinde UserForm1 formunu seçilen hücrenin yanında açıyor.



UserForm1 deki kodlar;

Kod:
Private Sub ListBox1_Click()
    ActiveCell.Value = ListBox1.Value
End Sub

ListBox1 de seçilen ismi aktif hücreye aktarır.



Kod:
Private Sub TextBox1_Change()
    Set S2 = Sheets("Sayfa2")
    If TextBox1 <> "" Then
    ListBox1.RowSource = ""
    For X = 1 To S2.[A65536].End(3).Row
    If S2.Cells(X, 1) Like TextBox1 & "*" Then
    ListBox1.AddItem S2.Cells(X, 1)
    End If
    Next
    Else
    ListBox1.RowSource = "Sayfa2!A1:A" & Sheets("Sayfa2").[A65536].End(3).Row
    End If
End Sub

TextBox1 e veri girmeye başladığınızda ilk olarak ListBox1 deki yüklü veriler siliniyor. Daha sonra X döngüsü ile TextBox1 e yazdığınız harflerle başlayan isimleri ListBox1 e yükleniyor. Eğer TextBox1 deki veriyi silerseniz ListBox1 e tüm verileri tekrar yüklüyor.



Kod:
Private Sub UserForm_Initialize()
    Me.Top = ActiveCell.Top + 100
    Me.Left = ActiveCell.Left + 100
    ListBox1.RowSource = "Sayfa2!A1:A" & Sheets("Sayfa2").[A65536].End(3).Row
End Sub

UserForm1 açılırken ListBox1 e tüm isimler yükleniyor. Ve form aktif hücrenin yanında açılıyor.



Umarım açıklayıcı olmuştur.
 
Geri
Üst