• DİKKAT

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

Adı, soyadını yazınca otomatikman iban no yu yazması

Katılım
11 Ocak 2008
Mesajlar
1,395
Excel Vers. ve Dili
Office 365 (Türkçe)
Adı, soyadını yazınca başka shetteki (bilgi girme sheetinden) veriyi alarak otomatikman iban no yu(iban sheeti) yazmasını istiyorum.
 

Ekli dosyalar

Muhtemelen çözüm bulunur ancak benim önerim ya ad ve soyadları aynı hücreye yazın ya da TC kimlik no/sicil no gibi benzersiz bir sütun daha kullanın. İsim benzerliğine karşı benzersiz sütun kullanmak daha iyi olur. Böylece düşeyara ya da başka formüllerle çözüm bulunabilir.
 
Siz haklısınız, başta bende öyle yaptım ama biz İl Müdürlüğünde ödemeler bankaya gönderilirken adı, soyadı formatında olması gereklidir.
 
Aşağıdaki kodları İBAN sayfasının kod bölümüne yapıştırın. İBAN sayfasında D6:E31 aralığına veri girildiğinde girilen ad soyadı BİLGİ GİRME sayfasında arar ve bulursa IBAN'ını B sütununa yazar:
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, [D6:E31]) Is Nothing Then Exit Sub

Set s1 = Sheets("BİLGİ GİRME")

son = s1.Cells(Rows.Count, "A").End(3).Row

a = Target.Row

If Cells(a, "C") <> "" And Cells(a, "D") <> "" Then
    For i = 2 To son
        If s1.Cells(i, "A") = Cells(a, "D") And s1.Cells(i, "B") = Cells(a, "E") Then
            Cells(a, "B") = s1.Cells(i, "C")
            i = son
        End If
    Next
End If

End Sub
 
Alternatif kod

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("d6:e32")) Is Nothing Then Exit Sub
Cancel = True
Application.ScreenUpdating = False
Application.Calculation = xlManual
adı = Trim(Cells(Target.Row, "d").Value)
soyadı = Trim(Cells(Target.Row, "e").Value)
Cells(Target.Row, "B").Value = ""
If adı = "" Then Exit Sub
If soyadı = "" Then Exit Sub
For r = 2 To Worksheets("BİLGİ GİRME").Cells(Rows.Count, "a").End(3).Row
bulunan1 = Trim(Sheets("BİLGİ GİRME").Cells(r, "a").Value)
bulunan2 = Trim(Sheets("BİLGİ GİRME").Cells(r, "b").Value)
If bulunan1 = adı And bulunan2 = soyadı Then
Cells(Target.Row, "b").Value = Sheets("BİLGİ GİRME").Cells(r, "c").Value
End If
Next

Application.ScreenUpdating = True
Application.Calculation = xlAutomatic

End Sub
 
YUSUF44 ve HALİT3 Üstatlar her ikinizin verdiği kodda oldu,
Elinize, emeğine sağlık. Çok çok teşekkürler ederim.
 
Son düzenleme:
Muhtemelen çözüm bulunur ancak benim önerim ya ad ve soyadları aynı hücreye yazın ya da TC kimlik no/sicil no gibi benzersiz bir sütun daha kullanın. İsim benzerliğine karşı benzersiz sütun kullanmak daha iyi olur. Böylece düşeyara ya da başka formüllerle çözüm bulunabilir.
bu formülü dediğiniz gibi Tc kimlik ile de yapalım ama bu sadece ad soyadı yazınca aynı isimle kişi çakışma olunca geçerli olsun, olurmu.
 
Alternatif kod

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("d6:e32")) Is Nothing Then Exit Sub
Cancel = True
Application.ScreenUpdating = False
Application.Calculation = xlManual
adı = Trim(Cells(Target.Row, "d").Value)
soyadı = Trim(Cells(Target.Row, "e").Value)
Cells(Target.Row, "B").Value = ""
If adı = "" Then Exit Sub
If soyadı = "" Then Exit Sub
For r = 2 To Worksheets("BİLGİ GİRME").Cells(Rows.Count, "a").End(3).Row
bulunan1 = Trim(Sheets("BİLGİ GİRME").Cells(r, "a").Value)
bulunan2 = Trim(Sheets("BİLGİ GİRME").Cells(r, "b").Value)
If bulunan1 = adı And bulunan2 = soyadı Then
Cells(Target.Row, "b").Value = Sheets("BİLGİ GİRME").Cells(r, "c").Value
End If
Next

Application.ScreenUpdating = True
Application.Calculation = xlAutomatic

End Sub
BU KOD sadece 1 sayfada bilgiyi arayıp buluyor sayenizde, bunu şöyle düşünsek aynı başlıkta ve aynı özellikte (istanbulda 39 ilçemizde 39 ilçe dosyası) dosyadan arayıp getirse biraz zor gözüküyor benim bilgimi fersah fersah aşıyor. üstatlar sizce olabilirmi.
 
Geri
Üst