• DİKKAT

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

Makro ile Düşeyara

  • Konbuyu başlatan Konbuyu başlatan seddur
  • Başlangıç tarihi Başlangıç tarihi
Katılım
12 Nisan 2012
Mesajlar
533
Excel Vers. ve Dili
Microsoft office professional plus 2019
Arkadaşlar çok pratik bir kullanımının olduğunu düşündüğüm MAKRO İLE DÜŞEYARA nasıl yapılır.İntenetde bulduğum örnekler güzel ama hiçbirini çalıştıramadım.Elinde makro örneği bulunan ya da sıfırdan yazabilecek arkadaş varsa çok sevinirim.Benim anladığım bir inputbox açılacak ve aranan değerler buraya yazıldıktan sonra istenen sonuç bulunacak.
 
Mantık şu ;

Belli hücrelerde aramak istediğin bilgiler olacak ,
Combobox ile aranacak değer istenecek bunu da if yapısı ile sağlayabilirsin mesela Bilgiconline değerinin yanındaki değeri alacaksın,

Kod:
If ComboBox1.Text = "Bilgiconline" Then

daha sonra VLOOKUP vba kodunu yazacaksın ,

en son olarak değeri getirmek istediğin range seçimini yapıp kodu bitereceksin.

Kusura bakma dışarıdayım tabletten yazıyorum o yüzden kodu yazamayacağım .

İyi çalışmalar.
 
Kod:
Sub arama()
Dim s1 As Worksheet
Set s1 = Sheets("Sayfa1"): Set wf = WorksheetFunction
Bul = InputBox("Aranan değeri giriniz")
If Bul = "" Then
MsgBox "Değer girmediniz"
Exit Sub
   End If
 if wf.CountIf(s1.Range("B2:B200"), Bul)=0 Then
MsgBox "Aradığınız değer bulunamadı"
Exit Sub
   End If
   Var = wf.VLookup(Bul, s1.Range("B2:D200"), 3, 0)
   MsgBox "Aradığınız değer " & Var
End Sub
 
Son düzenleme:
Merhbba,

Ben olsam makro ile DÜŞEYARA kullanmam, makrodaki FIND komutunu kullanırım.
Makronun yardımında FIND komutunun kullanışını bulabilirsiniz.
 
Son düzenleme:
Kod için çok teşekkür ederim.Kod hata vermiyor.
 
Son düzenleme:
Kod:
Sub arama()
Dim s1 As Worksheet
Set s1 = Sheets("Sayfa1"): Set wf = WorksheetFunction
Bul = InputBox("Aranan değeri giriniz")
If Bul = "" Then
MsgBox "Değer girmediniz"
Exit Sub
   End If
  Bak = wf.CountIf(s1.Range("B2:B200"), Bul)
  If Bak = 0 Then
  MsgBox "Aradığınız değer bulunamadı"
Exit Sub
   End If
   Var = wf.VLookup(Bul, s1.Range("B2:D200"), 3, 0)
   MsgBox "Aradığınız değer " & Var
End Sub
 
Kod da adı geçen"var" ile "bak" değerleri arasındaki farkı yazabilirmisin.
 
@Necdet Hocam bir örnek paylaşabilir misiniz. Mümkünse.
 
@Necdet Hocam bir örnek paylaşabilir misiniz. Mümkünse.

Merhaba,

Aşağıdaki kodlar H2 hücresinde yazılan değeri A sütununda arar ve kaç adet bulursa I sütununda listeler.

Find kodunu makronun yardımından Range.Find olarak aratınca verdiği kodlardır.
Daha fazla açıklama orada var.

İkinci kod dosya içinde yok ama sadece aranan değerin olup olmadığını söyler.
Bu kodları kendinize göre uyarlamanız gerekir.

Kod:
Sub Ara()

    Dim i   As Integer, _
        c   As Range, _
        Syf As Worksheet, _
        Deg As String, _
        Adr As String
   
    Set Syf = Sheets("Sayfa1")
   
    Range("I2:K100").ClearContents
   
    Deg = Range("H2")
    i = 1
   
    With Syf.Range("A:A")
        Set c = .Find(Deg, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            Adr = c.Address
            Do
                i = i + 1
                Syf.Cells(i, "I") = c.Value
                Syf.Cells(i, "J") = c.Offset(0, 1)
                Syf.Cells(i, "K") = c.Offset(0, 2)
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    End With
   
End Sub

Kod:
Sub AraTek()

    Dim i   As Integer, _
        c   As Range, _
        Syf As Worksheet, _
        Deg As String, _
        Adr As String
    
    Set Syf = Sheets("Sayfa1")
    
    Range("I2:K100").ClearContents
    
    Deg = Range("H2")
    
    With Syf.Range("A:A")
        Set c = .Find(Deg, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            MsgBox "Aranan Değer Var"
        Else
            MsgBox "Aranan Değer Yok"
        End If
    End With
    
End Sub
 

Ekli dosyalar

@Necdet hocam paylaşım ve bilgilendirme için teşekkür ederim.

HTC One_M8 cihazımdan Tapatalk kullanılarak gönderildi
 
Geri
Üst