• DİKKAT

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

iban numarası sorgulama

Katılım
5 Nisan 2020
Mesajlar
43
Excel Vers. ve Dili
excel2010 TR
merhabalar.forumda birden çok konu var ancak benim sorunuma çözüm bulamadım. a sütununda iban numaraları var. B sütununa ise bu iban numaralarının banka adı şube adını vs yazmasını istiyorum. Alacağı site herhangi bir çözümleme sitesi olabilir. forumda var ancak tek hücrede yapıyor ve şube adı vermiyor. Yardımcı olabilirseniz sevinirim
 
Araştırdığım kadarı ile IBAN da her bankanın şube kodu kullanmadığı yazıyordu. Resmi site olmadığı için varsayım olarak kabul edin.
Bu yüzden bir çok IBAN doğrulama ve çözümleme sitesi şube adı vermiyor. Şube kodu için IBAN da özel bir alan yok.
Hesap kodu son 16 karakter içinde ve şube kodu bilgisi kullanan bankalar bu hesap kodunun ilk 4 karakterini kullanıyormuş.

Sorun, hesap kodundaki ilk 4 karakter her zaman şube kodu mudur?
 
Bu durumda, sağlıklı bir şekilde şube bilgisi öğrenmeniz zor.

Kaynak: https://www.tbb.org.tr/Dosyalar/userfiles/file/tuketiciler/IBAN/IBAN _Bilgi_Notu.pdf

Hesap numarası alanının oluşturulmasında bankalarımız arasında ortak bir standart yoktur. Bazı bankalar alfabetik karakterler de kullanırken, bazı bankalarımız sadece sayısal karakterler kullanmaktadır. Bazı bankalar sadece hesap numarasını yazarken, bazıları hesap numarasının başına şube kodunu getirmektedir. Bazı bankalar ise hesap numarası yerine müşteri numarasını yazmayı tercih etmektedir. Bazı bankalar hesabın döviz cinsini hesap numarasının içinde ifade ederken, bazıları bunu ayrıca belirtmektedirler
 
Bu durumda, sağlıklı bir şekilde şube bilgisi öğrenmeniz zor.

Kaynak: https://www.tbb.org.tr/Dosyalar/userfiles/file/tuketiciler/IBAN/IBAN _Bilgi_Notu.pdf

Hesap numarası alanının oluşturulmasında bankalarımız arasında ortak bir standart yoktur. Bazı bankalar alfabetik karakterler de kullanırken, bazı bankalarımız sadece sayısal karakterler kullanmaktadır. Bazı bankalar sadece hesap numarasını yazarken, bazıları hesap numarasının başına şube kodunu getirmektedir. Bazı bankalar ise hesap numarası yerine müşteri numarasını yazmayı tercih etmektedir. Bazı bankalar hesabın döviz cinsini hesap numarasının içinde ifade ederken, bazıları bunu ayrıca belirtmektedirler
banka adı öğrenme forumlarda geçiyordu o yüzden yazdım. teşekkürler
 

Yukarıdaki sitede farklı iban doğrulama mevcut
Aşağıdaki kod A1 hücresine yazılan ibanın doğruluğunu sorguluyor.

Kod:
Sub iban_bul()

Range("A2:D20").ClearContents

Dim URL As String
Dim ie As Object
iban = Cells(1, 1).Value
Set ie = CreateObject("InternetExplorer.Application")

URL = "https://hesapno.com/cozumle_iban"
With ie
ie.navigate URL
ie.Visible = 1
ie.Width = 100
ie.Height = 50
ie.Left = 10 '250
ie.Top = 0

Do Until ie.readyState = 4: DoEvents: Loop
Do Until ie.readyState = 4: DoEvents: Loop

ie.Document.getelementbyid("iban2").Value = iban

Application.Wait (Now + TimeValue("00:00:01"))
ie.Document.forms(0).submit

Do Until ie.readyState = 4: DoEvents: Loop
Do While ie.Busy: DoEvents: Loop

Application.Wait (Now + TimeValue("00:00:03"))
y = 3

Set doc = ie.Document

Set hBody = doc.getElementsByTagName("tr")
For Each bb In hBody
If Len(bb.innerText & "555") > 10 Then
Cells(2, 1).Value = Trim(Replace(bb.innerText, Chr(10), ""))
End If
Next bb

Set hBody = doc.getElementsByTagName("div")
For Each bb In hBody

If "iban" = bb.ID Then
Cells(y, 1).Value = bb.innerText
y = y + 1

deg1 = Split(bb.innerText, vbLf)
If UBound(deg1) > 0 Then
For k = 0 To UBound(deg1)
deg2 = Split(deg1(k), ":")
If UBound(deg2) > 0 Then
For t = 0 To UBound(deg2)
Cells(y, t + 2).Value = Trim(Replace(deg2(t), Chr(13), ""))
Cells(y, t + 2).HorizontalAlignment = xlLeft
Next t
End If
y = y + 1

Next k
End If

End If
Next bb

ie.Quit
Set ie = Nothing
End With
    
MsgBox "işlem tamam"

End Sub
 
Sadece geçerli olup olmadığının kontrolü için Selenium ile Chrome üzerinden bu sorgulama kodları kullanılabilir.
A sütunundaki tüm IBAN Numaraları toplu olarak sorgulanabilir.

C#:
Sub IBAN_KONTROL()
    Dim Osma As New WebDriver, i As Integer
    Set Osma = New ChromeDriver
    With Osma
        .AddArgument ("--headless")
        .Get "https://hesapno.com/cozumle_iban"
        For i = 2 To Cells(Rows.Count, "A").End(3).Row
            .FindElementById("iban2").Clear
            .FindElementById("iban2").SendKeys Replace(Range("A" & i).Value, " ", "")
            .FindElementsByTag("input").Item(2).Click
            Range("B" & i).Value = .FindElementsByTag("table").Item(2).FindElementsByTag("div").Item(2).Text
        Next i
        .Quit
    End With
    i = Empty: Set Osma = Nothing
End Sub
 
Ufak bir video hazırlamıştım. Önceki mesajı düzenleyemediğim için buraya ekliyorum.
 
Sayın @Murat OSMA,


Gününüz aydınlık, neşeniz ile sağlığınız yerinde; kazancınız bol, her şey gönlünüzün güzelliğince ve Allah'ım sizden razı olsun.

Emek ve paylaşımlarınız için içten teşekkürler.

Sevgi ve saygılar.
 
Sayın @Haluk,


Çok teşekkürler, iyi hafta sonları üstadım.
Sağ olun, var olun.

Sevgi ve saygılar.
 
Murat Hocam resimdeki hatayı verdi. Nedeni nedir acaba ?hata.JPG
 
Selenium'un kurulması gerekiyor ama çok önemli değil, alternatif örnek olsun diye paylaştım.

Sn. @halit3'ün çözümü isteğinizi karşılıyor, onu kullanabilirsiniz.
 

Yukarıdaki sitede farklı iban doğrulama mevcut
Aşağıdaki kod A1 hücresine yazılan ibanın doğruluğunu sorguluyor.

Kod:
Sub iban_bul()

Range("A2:D20").ClearContents

Dim URL As String
Dim ie As Object
iban = Cells(1, 1).Value
Set ie = CreateObject("InternetExplorer.Application")

URL = "https://hesapno.com/cozumle_iban"
With ie
ie.navigate URL
ie.Visible = 1
ie.Width = 100
ie.Height = 50
ie.Left = 10 '250
ie.Top = 0

Do Until ie.readyState = 4: DoEvents: Loop
Do Until ie.readyState = 4: DoEvents: Loop

ie.Document.getelementbyid("iban2").Value = iban

Application.Wait (Now + TimeValue("00:00:01"))
ie.Document.forms(0).submit

Do Until ie.readyState = 4: DoEvents: Loop
Do While ie.Busy: DoEvents: Loop

Application.Wait (Now + TimeValue("00:00:03"))
y = 3

Set doc = ie.Document

Set hBody = doc.getElementsByTagName("tr")
For Each bb In hBody
If Len(bb.innerText & "555") > 10 Then
Cells(2, 1).Value = Trim(Replace(bb.innerText, Chr(10), ""))
End If
Next bb

Set hBody = doc.getElementsByTagName("div")
For Each bb In hBody

If "iban" = bb.ID Then
Cells(y, 1).Value = bb.innerText
y = y + 1

deg1 = Split(bb.innerText, vbLf)
If UBound(deg1) > 0 Then
For k = 0 To UBound(deg1)
deg2 = Split(deg1(k), ":")
If UBound(deg2) > 0 Then
For t = 0 To UBound(deg2)
Cells(y, t + 2).Value = Trim(Replace(deg2(t), Chr(13), ""))
Cells(y, t + 2).HorizontalAlignment = xlLeft
Next t
End If
y = y + 1

Next k
End If

End If
Next bb

ie.Quit
Set ie = Nothing
End With
   
MsgBox "işlem tamam"

End Sub
merhabalar kodlar için teşekkürler. A1 hücresindeki iban a bu kodu uyguladığımda A2 ye iban geçerlidir.a3 e banka bilgilerini ve B4 den B7 ve C4den C7ye banka bilgilerini vermekte. A sütununda 1200 İban var ve banka isimlerinin, geçerli olup olmadıgının yazılmasını istedigim B sütunu C sütunu. Yani bunlar alt alta değilde ibanın yanındaki sütunlara yazılma şansı var mı. Teşekkürler
 
Sadece geçerli olup olmadığının kontrolü için Selenium ile Chrome üzerinden bu sorgulama kodları kullanılabilir.
A sütunundaki tüm IBAN Numaraları toplu olarak sorgulanabilir.

C#:
Sub IBAN_KONTROL()
    Dim Osma As New WebDriver, i As Integer
    Set Osma = New ChromeDriver
    With Osma
        .AddArgument ("--headless")
        .Get "https://hesapno.com/cozumle_iban"
        For i = 2 To Cells(Rows.Count, "A").End(3).Row
            .FindElementById("iban2").Clear
            .FindElementById("iban2").SendKeys Replace(Range("A" & i).Value, " ", "")
            .FindElementsByTag("input").Item(2).Click
            Range("B" & i).Value = .FindElementsByTag("table").Item(2).FindElementsByTag("div").Item(2).Text
        Next i
        .Quit
    End With
    i = Empty: Set Osma = Nothing
End Sub
Merhaba, kod için teşekkür ederim. Bir isteğim olacaktı koda hangi bankaya ait olduğunu da yazma özelliğini getirme şansınız var mıdır ?
 
merhabalar,

@halit3 hocamın kodunu dosyamın OZLUK_DOSYASI sayfası M4:9999 hücrelerine uygulayabilecek şekilde düzeltebilir misiniz?

246051
 
Geri
Üst