Listeden İsim Çekme

Katılım
2 Ekim 2015
Mesajlar
74
Excel Vers. ve Dili
2019 TR
Merhabalar ekte bulunan Excel kitabımda Öğrenci Listesi ve Hesap Hareketleri adında 2 adet sayfam var. Command buton yardımı ile Hesap Hareketleri sayfasında bulunan açıklamaların içindeki metnin Öğrenci Listesi sayfasında bulunan öğrenci adı baba adı ve anne adı bilgileri kombinasyonu ile karşılaştırılıp (bazen açıklamada sadece anne yada baba adı bulunabiliyor) Hesap Hareketleri sayfasında öğrenci isminin yazdırılması konusunda yardımlarınızı rica ediyorum.

Dosya linki : BANKA LİSTESİ
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,359
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,
Aşağıdaki kodları bir modüle kopyalayıp dener misiniz?

Kod:
Sub AraBul()

Dim c   As Range
Dim i   As Integer
Dim b   As Boolean
For i = 2 To Sayfa1.Cells(Rows.Count, "A").End(3).Row

    b = False
    Set c = Sayfa2.Range("B:B").Find(Sayfa1.Cells(i, "B"), LookIn:=xlValues, LookAt:=xlPart)
    If Not c Is Nothing Then
        Sayfa2.Cells(c.Row, "E") = Sayfa1.Cells(i, "B")
        b = True
    End If
    
    If b = False Then
        Set c = Sayfa2.Range("B:B").Find(Sayfa1.Cells(i, "C"), LookIn:=xlValues, LookAt:=xlPart)
        If Not c Is Nothing Then
            Sayfa2.Cells(c.Row, "E") = Sayfa1.Cells(i, "B")
            b = True
        End If
    End If
    
    If b = False Then
        Set c = Sayfa2.Range("B:B").Find(Sayfa1.Cells(i, "D"), LookIn:=xlValues, LookAt:=xlPart)
        If Not c Is Nothing Then
            Sayfa2.Cells(c.Row, "E") = Sayfa1.Cells(i, "B")
        End If
    End If
    
Next i

MsgBox "Bitti...."

End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Alternatif;

C#:
Sub Test()
    Set s1 = Sheets("ÖĞRENCİ LİSTESİ")
    Set s2 = Sheets("HESAP HAREKETLERİ")
   
    NoS1 = s1.Range("A" & Rows.Count).End(xlUp).Row
    NoS2 = s2.Range("A" & Rows.Count).End(xlUp).Row
    s2.Range("E" & NoS2) = ""
   
    For i = 2 To NoS1
        For j = 2 To NoS2
            If StrConv(s2.Range("B" & j), vbUpperCase, 1033) Like "*" & StrConv(s1.Range("B" & i), vbUpperCase, 1033) & "*" Or _
               StrConv(s2.Range("B" & j), vbUpperCase, 1033) Like "*" & StrConv(s1.Range("C" & i), vbUpperCase, 1033) & "*" Or _
               StrConv(s2.Range("B" & j), vbUpperCase, 1033) Like "*" & StrConv(s1.Range("D" & i), vbUpperCase, 1033) & "*" Then
               s2.Range("E" & j) = s1.Range("B" & i)
            End If
        Next
    Next
End Sub
.
 
Katılım
2 Ekim 2015
Mesajlar
74
Excel Vers. ve Dili
2019 TR
Sayın Necdet ve Haluk hocalarım her ikinizin de eline emeğine sağlık 2 formül de isteğimi sorunsuz şekilde yerine getirmekte izinde olduğum için yazmış olduğunuz çözümlere hemen dönüş yapamadım bu yüzden de ayrıca sizlerin affına sığınıyorum
 
Üst