A

Çözüldü Hücre İçinde GOOGLE Tarzı Otomatik Tamamlama

  • Konuyu başlatan Konuyu başlatan amsterdam
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

amsterdam

Site Üyesi
Excel Versiyonu
Excel 2016
Excel Sürümü
64 Bit
Excel Dili
Türkçe
Sevgili forum uyeleri,
hucre icinde harfleri yazinca yandaki ok isaretine basinca kelimeler cikiyor, benim sorum ise, google tarzi yazmaya baslayinca kelimeleri gosterebilirmi. hucre icinde olursa sevinirim (combobox olmasin). bir dosya ekliyorum. Hangi formulu kullanmam gerekiyor. comboboxlu ornekleri buldum fakat hucre icinde bulamadim.
saygilarimla
 

Ekli dosyalar

Merhaba.

Konu başlıklarını veya mesajlarınızı tümü büyük harf olarak yazmayınız (düzelttim)

İşlemi tek hücrede istiseydiniz, formüllerle bir şeyler yapılabilirdi.

Ancak çok sayfada, 'den fazla alanda işlem istiyorsunuz.
Bu durumda bence iki seçenek var;
-- ya sayfada belli hücreler seçildiğinde görünür hale gelecek bir adet Listbox veya Combobox nesnesi kullanmak.
(yazdıkça İÇERİR mantığıyla liste oluşacak, başka sütuna geçince kaybolacak, oluşan listedeki seçim sonucunu hücreye yazdıracak),
-- ya da aynı şekilde belli alandaki hücreler seçildiğinde açılacak olan ve içerisinde yazarken filtreleme işlemi kodlanmış bir Listbox veya Combobox nesnesinin olduğu küçük bir userform kullanmak.
Bence istediğiniz işlemin başka yolu yok. Bunun asıl sebebi ise hücre değişimiyle bir kodun/makronun tetiklenebilmesi için verinin yazılıp, ENTER veya başka hücrenin seçilmesi yoluyla hücreden çıkılmış olması gerekmesi. Yani hücreye yazmakta iken makronun tetiklenememesi.
Yazarken kod çalışacaksa mutlaka bir ActiveX nesnesi (sayfada veya userform üzerinde) kullanılması gerekir.
Hücrede açılan Listbox olayıyla ilgili bir örnek aşağıdaki konu sayfasında 10 numaralı cevap ekindeki belgede L9 hücresinde var mesela. Size lazım olan bu işlemin çok sayıda hücre için kurgulanması veya userform yöntemi.

 
Aslında sanki size gerekli olan;
dosyada mevcut bir/birkaç harf yazıp, veri doğrulama okuna tıkladığınızda açılan
"İLE BAŞLAR" şeklindeki veri doğrulama listesinin İÇERİR şeklinde düzenlenmesi değil mi?

.
 
Sayın @Amsterdam .

Sizin için bir UserForm çalışması hazırladım.
Belgede önce makroları devre dışı bırakın,
ay sayfalarında D sütunlarındaki veri doğrulamaları iptal edin ve makroları tekrar etkinleştirin.

D sütununda bir hücre seçildiğinde küçük userform açılır ve hemen yazmaya başlamanız için Textbox seçili halde gelir.
Yazdıkça alttaki liste oluşur, alttaki listeden çift tıklamayla ilgili veri hücreye yazdırılır ve form kendisini kapatır.
D sütunu dışında bir hücre seçilirse userform otomatik kapanır.
Bence belgenizdeki yapıya en uygun seçenek bu.

Makroları devre dışı bırakmak/etkinleştirmek için:
MENÜ ÇUBUĞU >> GELİŞTİRİCİ >>DENETİMLER bölümünde CETVEL/KALEM simgeli TASARIM MODU düğmesi kullanılır.


.
 

Ekli dosyalar

Bir sorum daha olacakti. Bir bilgi girince hucreye, silinmiyor. En assagi 2 tane hucre secince silebiliyorsun. Tab dugmesine yada yön tuşlarına basinca bir sonraki hucreye gitmiyor. illaki fareyle diger hucreye gidiliyor.
 
Sayın @Amsterdam .

-- Userform_Initalize kod blokunda End Sub satırının hemen üstündeki
ActiveCell.ClearContents satırını silin veya sol başına TEK TIRNAK ekleyerek etkisizleştirin,
-- Userformun kod bölümüne aşağıdaki kodları ekleyin.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(7 satır)

Böylece; hem hücre seçildiğinde, seçilen hücre içeriği otomatik silinmemiş olur, hem userform ekrandayken
(Listbox listesindeki bir satıra çift tıklamadan önce) ESC tuşuna basılırsa form kapanır ve hem de hücre içeriğini silmek
için 1'den fazla hücreyi seçerek silmek zorunda kalmazsınız.
 
ActiveCell.ClearContents Bunu bulamadim dediginiz yerde.


'Dim hcr

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
ActiveCell.Value = ListBox1
Unload UserForm1
End Sub

Private Sub TextBox1_Change()
Set g = Sheets("Girisler")
gson = g.Cells(Rows.Count, 4).End(3).Row
ListBox1.Clear
For XD = 6 To gson
If InStr(g.Cells(XD, 4), TextBox1) > 0 Then ListBox1.AddItem g.Cells(XD, 4)
Next
End Sub

Private Sub UserForm_Activate()
Me.TextBox1.SetFocus
End Sub

Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Top = ActiveCell.Offset(0, 1).Top + 160
Me.Left = ActiveCell.Offset(0, 1).Left + 24
End Sub
 
Demekki size gönderirken yaptığım temizlik sırasında hata yapmışım.

En iyisi belgeyi yeniden yükleyeyim.
Bu arada bir ilave daha yaptım (ESC ile kapanma vs aynen devam).

Userformu faresiz kullanabilmek bakımından;
-- açılışta Listboxa tam liste hazır gelir, textboxa yazarken filtrelenir,
-- Textboxta birşeyler yazarken veya daha yazmadan TAB tuşuyla Listboxa geçiş yapıp aşağı/yukarı yön tuşlarıyla listede gezinebilir,
-- fareyle çift tıklama veya ENTER tuşuyla seçili satırın hücreye yazılmasını ve formun kapatılmasını sağlayabilirsiniz.
-- D sütununda dolu bir hücreyi siebilmek için, ESC ile form kapatıldığında DELETE zaten kullanılabilir.
 

Ekli dosyalar

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst