Clever-Excel-Forum

Normale Version: IBAN in Verwendungszweck finden
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, 

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?

Herzlichen Dank im Voraus
Hallo,

ja, es gibt mehrere Möglichkeiten:

VBA
if intstr(cells(1,1), "IBAN") > 0 then 'dann mit "Mid()" darauf zugreifen.

Arbeitsblatt:
=finden("IBAN",....)

interessant ist RegEx
.Pattern = "DE\d{15}"

mfg
Hallo

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.

mfg  Gast 123
Zitat:grundsätzlich eine IBAN anhand Ihrer Formatierung 2 Buchstaben + 15 Zahlen zu identifizieren
Ist dies so?
*VeryConfused*

fragt sich (nicht nur) Ralf
Hallo,

@RPP63

dann möchte ich die Konfussion noch etwas erhöhen:

Wenn

"\w{2}\d{15}"

nicht klappt, kann man immer noch ein

"\w\w\d\d\s(\d/{4}\s\){3}\s\d{2}"

nach schieben.

Oder einfacher für den Frageseller: es ist machbar!

mfg
Hallo zusammen,

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.

Gruß
Ich
(27.10.2016, 14:37)Fennek schrieb: [ -> ]Hallo,

ja, es gibt mehrere Möglichkeiten:

VBA
if intstr(cells(1,1), "IBAN") > 0 then 'dann mit "Mid()" darauf zugreifen.

Arbeitsblatt:
=finden("IBAN",....)

interessant ist RegEx
.Pattern = "DE\d{15}"

mfg

Vorne weg: Danke an alle!

Die VBA-Lösung sieht interessant aus, ich werde mal versuchen ein Makro daraus zu machen. Wäre zwar mein erstes, aber ist wohl eine gute Gelegenheit.
Hallo,

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.

mfg
Hallo,

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


die im Arbeitsblatt einfach mit

=IBAN(A1)

angesprochen wird.

mfg