• DİKKAT

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

Find Komutu İle 3'lü Arama

Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam,
Döngü kullanmadan, Find komutu ile 3 tane koşulu 3 sütunda bulup satırını öğrenebilir miyiz? Böyle birşey mümkün müdür?
İyi çalışmalar.
 
Son düzenleme:
Merhaba,

Döngü kullanmadan ve Find komutu ile aranan veriyi bulmak çok zor. Ancak ilk bulunan değer ilgili koşulu içerirse sizin dediğiniz gerçekleşmiş olur, aksi takdirde döngü kullanmak gerekir.
 
Merhaba,

Döngü kullanmadan ve Find komutu ile aranan veriyi bulmak çok zor. Ancak ilk bulunan değer ilgili koşulu içerirse sizin dediğiniz gerçekleşmiş olur, aksi takdirde döngü kullanmak gerekir.

Selam Sayın Necdet Yeşertener Hocam,
Açıklamalarınız için çok teşekkür ederim.
Biraz uğraştım aşağıdaki gibi bir çalışma yaptım. Aradığım 3 veriyi D1,E1 ve F1 hücrelerine yazıyorum. M1'den kaçıncı olduğunu bulabiliyorum.


Kod:
Sub deneme()
'Dim aranan As String

son = Range("A65536").End(3).Row

aranan = Range("D1") & Range("E1") & Range("F1")

Range("M1").FormulaArray = Evaluate("=MATCH(""" & aranan & """,A3:A" & son & "&B3:B" & son & "&C3:C" & son & ",0)")

End Sub

Benzer alternatif çözümlerinizi paylaşırsanız sevinirim.
Ayrıca bir sorum olacak; yukarıdaki kodu neden WorksheetFunction.Match altında yazamıyorum?

İyi çalışmalar.
 
Merhaba,

Soru "Find Komutu İle 3'lü Arama" idi. Bu soru bence yanıtlandı. Sizin önerdiğiniz ya da çözüm yolu bu sorunun kapsamı dışında.
 
Selamlar,

Aşağıdaki kod yapısı işinize yarar mı?

Kod:
Option Explicit
 
Sub ARA()
    Dim Aranan As String, Bul As Range, Satır As Long
    
    Aranan = "210x297" & "8" & "60"
    Satır = Range("A65536").End(3).Row
    
    Range("IV:IV").ClearContents
    Range("IV3") = "=A3&B3&C3"
    Range("IV3").AutoFill Destination:=Range("IV3:IV" & Satır), Type:=xlFillDefault
    Range("IV3:IV" & Satır).Value = Range("IV3:IV" & Satır).Value
    
    Set Bul = Range("IV:IV").Find(Aranan, LookAt:=xlWhole)
    If Not Bul Is Nothing Then MsgBox Bul.Row
    
    Columns("IV:IV").ClearContents
End Sub
 
Selamlar,

Aşağıdaki kod yapısı işinize yarar mı?

Kod:
Option Explicit
 
Sub ARA()
    Dim Aranan As String, Bul As Range, Satır As Long
    
    Aranan = "210x297" & "8" & "60"
    Satır = Range("A65536").End(3).Row
    
    Range("IV:IV").ClearContents
    Range("IV3") = "=A3&B3&C3"
    Range("IV3").AutoFill Destination:=Range("IV3:IV" & Satır), Type:=xlFillDefault
    Range("IV3:IV" & Satır).Value = Range("IV3:IV" & Satır).Value
    
    Set Bul = Range("IV:IV").Find(Aranan, LookAt:=xlWhole)
    If Not Bul Is Nothing Then MsgBox Bul.Row
    
    Columns("IV:IV").ClearContents
End Sub

Selam,
Sayın Korhan Ayhan Hocam,
Çok teşekkür ederim.
Kod:
Range("IV3:IV" & Satır).Value = Range("IV3:IV" & Satır).Value
Kısmını anlayamadım. Bunsuz da çalışmadı. mümkünse izah edebilir misiniz?
İyi çalışmalar.
 
Selamlar,

Bu kod satırı formül içeren alanı değere dönüştürmek için kullanılır.

"IV" sütunu formülle üretilmiş değerleri içeren sütundur. Normal şartlarda "find" (ctrl+f) komutu seçeneklerinde bulunan "BAK" bölümünde varsayılan ayar "Formüller" şeklindedir. Bu ayarda iken formülle üretilmiş bir alandaki değeri bulamazsınız. Yani formül sonucunda bir hücrede "ali" değeri oluşmuşsa ve bu değeri bulmak istiyorsak CTRL+F menüsünü açıp "ali" yazıp bul dersek oluşmsuz sonuç alırız. Bulmak için "find" seçeneklerindeki "BAK" bölümünü "Değerler" olarak ayarlamanız gerekir. Bu şekilde ayarlarsanız mesajınızda belirttiğiniz kod satırını silebilirsiniz.

Aşağıdaki işlemleri uygulayıp deneyebilirsiniz.

"Range("IV3:IV" & Satır).Value = Range("IV3:IV" & Satır).Value" kod satırını silin.
Önerdiğim kod içinde geçen "Set Bul ..." ile başlayan satırıda aşağıdaki şekilde değiştirip kodu deneyin.

Kod:
Set Bul = Range("IV:IV").Find(Aranan, LookAt:=xlWhole, [COLOR=red]LookIn:=xlValues[/COLOR])
 
Geri
Üst