Düşeyara ve Kaçıncı fonksiyonunun vba şekli...

Katılım
26 Kasım 2012
Mesajlar
67
Excel Vers. ve Dili
Office 2016 / Türkçe
Herkese iyi akşamlar

Aşağıdaki fonksiyonun vba da nasıl yazıldığını bulamadım yardımlarınızı bekliyorum.

Kod:
=DÜŞEYARA(KAÇINCI(C1;Y:Y;1);X:Y;2;0)
Yapmaya çalıştığım şey C1 hücresine her karakter girdiğimde c2 ye y sütununda bulunan eşleşmesi gelsin istiyorum.

örneğin c1 hücresine si girdiğimde y sütununda bulunan sinüzit c2 ye yazsın.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,070
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Muhtemelen istediğiniz bu değil ancak formülün kod karşılığı şudur:

Kod:
WorksheetFunction.Vlookup(WorksheetFunction.Match([C1],[Y:Y],1),[X:Y],2,0)
Bu formül, önce C1'deki verinin Y sütununda kaçıncı sırada olduğunu buluyor, yani sayısal bir veri elde ediyor, sonra bu sayısal veriyi X sütununda arayıp, karşısında yani Y sütunundaki değeri getiriyor.

Verdiğiniz örnekten yola çıkarsak C1'deki si yazıyorsa Y sütununda si olan hücre Y5 ise formül X sütununda 5'i arar, bu da diyelim ki X10'da olsun, formülün sinüzit sonucu vermesi için Y10'da sinüzit yazması gerekir.
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.

Fikrimi belirtmek istedim.

Bildiğim kadarıyla hücreye bir değer yazılmakta iken bir kod çalıştırılamıyor.

Birşeyler yazdıktan sonra; fareyle başka bir hücre seçerek veya ENTER ile başka bir hücreye geçildiğinde
Worksheet_Change kod'u devreye girerek istenilen arama-bulma işlemi halledilebilir elbette.
Bu durumda da ikinci sorun, Y sütununda istenilen koşula uyan bir'den fazla hücrenin var olması durumudur.
Başka bir soru da işlemin "...ile başlar" şeklinde mi yoksa "...içerir" gibi mi düşünüleceği,
verinin sayısal mı yoksa metinsel bir veri için mi yapılacağı netleşmelidir.

Bence, örnek belge (cevabımın altında örnek belge ile ilgili açıklamalar var) ekleyerek, isteğinizi/ihtiyacınızı net şekilde ifade etmelisiniz.
.
 
Katılım
26 Kasım 2012
Mesajlar
67
Excel Vers. ve Dili
Office 2016 / Türkçe
Yusuf bey öncelikle ilgilendiğiniz için teşekkür ederim. Verdiğiniz kod aynen benim yazdığımın karşılığı fakat Sayın Ömer beyin de dediği gibi hücre değiştirmeden işlem çalışmıyordu.
Ben de Bir müddet yanıt gelmeyince farklı arayışlar yaparak kendimce şöyle bir şey yaptım. Ve istediğim oldu.
Öncelikle bir adet textbox ekledim ve kod bölümüne
Kod:
Private Sub TextBox1_Change()
Range("c1") = TextBox1.Text
Calculate

End Sub
girdim.
c2 yede ilk mesajda verdiğim formülleri girince her harf girdiğimde formül çalışmış oldu ve basit bir arama motoru yapmış oldum.

Tekrardan

Syn Yusuf beye ve Ömer beye teşekkür ediyorum.
 
Üst