Am 07.04.2021 um 17:45 schrieb Robert Großkopf: > Hallo *, > > ich versuche gerade, für ein Base-Formular die Gültigkeit einer IBAN mit > einem einfachen Makro zu überprüfen. > > Mit CDbl(…………) kann ich die 24 Stellen nicht in eine Zahl pressen.
Das ist schon der erste, zweite und dritte Denkfehler gleichzeitig: Erstens ist die deutsche IBAN nur 22-stellig. Zweitens kann sie im internationalen Verkehr bis zu 34-stellig sein. Und drittens beinhaltet sie *auch* *Buchstaben*. Was zumindest sicher ist, sind die ersten beiden Stellen der Ländercode (Buchstaben), und die beiden folgenden Stellen eine Prüfziffer. Alles danach ist länderabhängig, vgl. https://de.wikipedia.org/wiki/Internationale_Bankkontonummer#IBAN-Struktur_in_verschiedenen_L%C3%A4ndern . D.h. du musst überhaupt erst mal den Ländercode auswerten, und abhängig davon die exakte Länge und Aufteilung ermitteln. das alles muss eigentlich über Textfunktionen erfolgen, nur so kannst du die einzelnen Abschnitte sinnvoll extrahieren. Und dann kommt noch ein vierter Denkfehler dazu: Die größte in OO verwendbare Variablentype ist IIRC BigInt mit 17 signifikanten Stellen. Größere Zahlen sind einfach nicht verarbeitbar, zumindest nicht als direkte Zahl. Da musst du sowieso entweder auf irgend welche Hilfskonstruktionen oder (besser, weil einfacher) auf String ausweichen. Was aber eigentlich keine große Sache ist, denn mit der IBAN selbst wirst du kaum rechnen wollen (und selbst die Prüfsumme ist ja keine /Rechnung/ mit der IBAN selbst, sondern lediglich eine mit den einzelnen Stellen aka *Ziffern* darin. Wolfgang -- -- Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org Probleme? https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/ Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de Listenarchiv: https://listarchives.libreoffice.org/de/users/ Datenschutzerklärung: https://www.documentfoundation.org/privacy