Mit nachfolgender Funktion lässt sich die IBAN-Nummer nach der Standard IBAN-Berechnung für deutsche Bankverbindungen ermitteln. Tipp: Beschreibung der Parameter:
' IBAN-Nummer ermitteln Private Function IBANCalc(ByVal sLand As String, _ ByVal sBLZ As String, _ ByVal sKtoNr As String, _ Optional ByVal nBLZMaxLen As Integer = 8, _ Optional ByVal nKTOMaxLen As Integer = 10) As String Dim zahl As Variant Dim pz As Variant Dim sIBAN As String Dim sChar As String Dim sTemp As String Dim i As Integer sIBAN = sLand & "00" & _ Format$(sBLZ, String$(nBLZMaxLen, "0")) & _ Format$(sKtoNr, String$(nKTOMaxLen, "0")) sIBAN = Right$(sIBAN, Len(sIBAN) - 4) & Left$(sIBAN, 4) For i = 1 To Len(sIBAN) sChar = Mid$(sIBAN, i, 1) If Asc(sChar) > 64 And Asc(sChar) < 91 Then sChar = CStr(Asc(sChar) - 55) End If sTemp = sTemp & sChar Next i zahl = CDec(sTemp) pz = 98 - modDecimal(zahl, 97) sTemp = Left$(sTemp, Len(sTemp) - 2) & Trim$(Format(STR$(pz), "00")) sTemp = Right$(sTemp, 6) & Left$(sTemp, Len(sTemp) - 6) IBANCalc = Chr$(Val(Left$(sTemp, 2)) + 55) & _ Chr$(Val(Mid$(sTemp, 3, 2)) + 55) & _ Right$(sTemp, Len(sTemp) - 4) End Function Da es sich bei den Berechnungen um sehr große ganze Zahlen handelt, muss auf das Decimal-Format ausgewichen werden (mit CDec) und es braucht eine eigene Modulo-Funktion: ' Hilfsfunktion: Modulo für große Zahlen Public Function modDecimal(Dividend, Divisor) If Divisor = 0 Then modDecimal = -1 Else modDecimal = Dividend - Divisor * (Round(Dividend / Divisor)) If modDecimal < 0 Then modDecimal = Divisor + modDecimal End If End Function Aufrufbeispiel: ' Deutschland ' BLZ: 793 530 90 ' Konto-Nr.: 16303 ' ' offizielle IBAN-Nummer lautet: DE65793530900000016303 Dim sIBAN As String sIBAN = IBANCalc("DE", "79353090", "16303", 8, 10) Wichtiger Hinweis: Dieser Tipp wurde bereits 36.807 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevISDN 1.0 ![]() Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Tipp des Monats TOP! Unser Nr. 1 ![]() Neu! sevDataGrid 3.0 Mehrspaltige Listen, mit oder ohne DB-Anbindung. Autom. Sortierung, Editieren von Spalteninhalten oder das interaktive Hinzufügen von Datenzeilen sind ebenso möglich wie das Erstellen eines Web-Reports. |
||||||||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |