Textbox IBAN kontrol

sirkülasyon

Altın Üye
Katılım
10 Temmuz 2012
Mesajlar
2,518
Excel Vers. ve Dili
2021 LTSC TR
Altın Üyelik Bitiş Tarihi
18-06-2026
Kod:
Function Mod97(Numero As String) As Integer
Nro = Numero
a = 0
B = 0
c = 0
e = Right(Nro, 6)
D = Mid(Nro, Len(Nro) - 11, 6)
Select Case Len(Nro)
 Case 13 To 20
   c = CDbl(Mid(Nro, 1, Len(Nro) - 12))
 Case 21 To 28
   c = CDbl(Mid(Nro, Len(Nro) - 19, 8))
   If Len(Nro) <> 20 Then B = CDbl(Mid(Nro, 1, Len(Nro) - 20))
 Case 29 To 36
   c = CDbl(Mid(Nro, Len(Nro) - 19, 8))
   B = CDbl(Mid(Nro, Len(Nro) - 27, 8))
   a = CDbl(Mid(Nro, 1, Len(Nro) - 28))
 Case Else
 Mod97 = "#VALEUR!"
 Exit Function
End Select
div97 = Int((a * 93 + B * 73 + c * 50 + D * 27 + e Mod 97) / 97)
Mod97 = (a * 93 + B * 73 + c * 50 + D * 27 + e Mod 97) - div97 * 97
End Function
Function convIBAN(lettre As String)
  convIBAN = (Asc(lettre) - 55)
End Function

Function ControleIban(LeNumIban As String) As String
Dim x As String
LeNumIban = Replace(LeNumIban, " ", "")
LeNumIban = Right(LeNumIban, Len(LeNumIban) - 4) & Left(LeNumIban, 4)
n = 1
While n <= Len(LeNumIban)
  x = Mid(LeNumIban, n, 1)
 If Not IsNumeric(x) Then
   LeNumIban = Replace(LeNumIban, x, convIBAN(x), 1, 1)
 End If
  n = n + 1
Wend
n_iban = Mod97(LeNumIban)
If n_iban = 1 Then
  ControleIban = "Doğru IBAN"
Else
  ControleIban = "Hatalı IBAN"
End If
End Function
Kod:
Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Len(TextBox8) <> 26 Then
Cancel = True
Else
TextBox8 = "TR" & Format(Right(TextBox8, 24), "00 0000 0000 0000 0000 0000 00")
End If
If ControleIban(TextBox8.Text) = "Hatalı IBAN" Then
    TextBox8.BackColor = vbRed
Else
    TextBox8.BackColor = vbGreen
End If
End Sub
Ustam Modülde ki kod ve Textbox exıt olayındaki kod yukarıda yazılı.
Textbox8' e "111111111111111111111111" şeklinde giriş yapıldığı zaman modülde ki kod şekline dönüşmesini nasıl sağlayabilirim?
 
Üst