ich bin neu im Forum und hätte unverschämterweise gleich mal eine Frage: Von meiner Bank bekomme ich meine Kontoauszüge als CSV-Datei und übernehme diese in Excel. Bisher habe ich die IBAN immer manuell aus dem Verwendungszweck in ein separates Feld kopiert, bin aber sicher, dass man das auch automatisieren kann, frage mich nur wie. So ein Verwendungszweck sieht (anonymisiert) wie folgt aus.
SEPA-Überweisung Hier steht ein variierender Verwendungszweck IBAN: DE123456789012345 123456 BIC: BIC293BIC29
Zwar wird es wahrscheinlich das Einfachste sein, den Wert zu finden, indem man nach dem Wort folgend auf "IBAN:" sucht, doch würde es mich interessieren, ob Ihr auch eine Möglichkeit seht, grundsätzlich eine IBAN anhand Ihrer Formatierung 2 Buchstaben + 15 Zahlen zu identifizieren und zu filtern?
wenn man nicht alles von hand heraus suchen wiill, finde ich laestig, geht das über ein Makro, Dazu müssten wir wissen in welcher Tabelle, in welcher Spalte die csv Daten stehen, und wo das Ergebnis hingeschrieben werden soll. Eine kleine Beispieldatei mit Fantasie Daten ist hilfreich.
zum Thema IBAN siehe hier. Grundsätzlich ist die IBAN normiert, aber selbst im "europäischen" Bankenverkehr scheint es hier Abweichungen zu geben. Mich verwirrt aber die Aussage des TS, dass die IBAN aus dem Verwendungszweck extrahiert werden muss. Nach meinem Daürhalten sollte die IBAN doch irgendwo entweder getrennt als Kto-Nr und BLZ erscheinen oder eben als kpl. IBAN. Mehr ist sie doch nicht. Ein bzw. das Länderkürzel, eine Prüfziffer, die alte BLZ und die Konto-Nummer.
so war das dann doch nicht gemeint. Die Antwort war in etwas so allgemein wie die Fragestellung. Einen Code zu schreiben geht erst, wenn eine kleine Demodatei bereitgestellt wurde. Nicht mit echten Daten, aber z.B. Leerzeichen innerhalb der IBAN müßten angegeben werden.
RegEx war (fast) mein letztes Kapitel im "VBA-lernen", da es wohl vor jahrzehnten konzipiert wurde, ist es weniger intuitiv als andere Codes.
Bei Interesse, eine recht gute Einführung ist bei "http://www.regenechsen.de/phpwcms/index.php", die M$-Hilfstexte sind relativ knapp.
in der Software-Branche werden user manchmal als "Beta-Tester" angefragt, dagegen ist das hier "pre-Alfa". Alles Austesten darf der Fragesteller übernehmen.
Für die erste Version erschien mir eine UDF sinnvoll:
Code:
Function IBAN(rng As String) 'If rng.Count > 1 Then MsgBox "Hi": Exit Function With CreateObject("vbscript.regexp") .Global = False 'nur der erste Treffer .Pattern = "\s\w\w\d{2}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{4}\s?\d{2}" 'Pattern = "\s\w\w\d\d" IBAN = .Execute(rng)(0) If InStr(Trim(IBAN), " ") = 0 Then IBAN = Format(IBAN, "@@@@@ @@@@ @@@@ @@@@ @@@@ @@") End If End With End Function