IBAN zerlegen
#11
Hallo allerseits,

ich habe nicht damit gerechnet, dass das so Wellen schlägt. Es war eigentlich auch ein wenig scherzhaft gemeint. Doch bemerke ich bei genauem lesen eurer Antworten, dass ich bei meinem Post wohl etwas schnell war.

@Jockel
Ich habe nur Excel2007 und habe Günthers Satz
Zitat:Anschließend alle Spalten wieder zusammenfügen mit Leerzeichen als Trenner.
- da ich es ja nicht ausprobiere kann - ein wenig anders assoziiert, als er gemeint war.
Du hast vollkommen recht, das sind Lösungswege, deren Komfort sich vielmehr zu unterscheiden scheint, als ich gedacht habe.

@Günther
ich hätte vielleicht dazuschreiben sollen, dass ich es sehr begrüße, dass du immer wieder auf PowerQuery hinweist. Durch dich bin ich schon ganz gespannt darauf, PQ auszuprobieren.
Mir geht es oft so, dass ich bemerke, dass ich mein Excel2007 vielfach noch genau so verwende, wie Excel2000 und das Gefühl habe, dass es wahrscheinlich inzwischen schnellere Lösungswege gibt. Aber die Macht der Gewohnheit oder wahrscheinlich auch Faulheit gepaart mit der Sicherheit, dass es so funktioniert, verleiten mich einfach ...

Viele Grüße,
Ulrich
Top
#12
Mal gemäß der Vorgaben und selbst die Griechen inkludierend …
Modul Modul1
Option Explicit 

Function IBANtxt$(rng$)
Select Case Left(rng, 2)
  Case "GR"
    IBANtxt = Format(rng, "!@@@@ @@@ @@@@ @@@@ @@@@ @@@@ @@@@")
  Case Else
    IBANtxt = Format(rng, "!@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@")
End Select
End Function

ABC
1LandIBANIBAN_Formatiert
2FinnlandFI121234123412FI12 1234 1234 12
3GriechenlandGR121231234123412341234GR12 123 1234 1234 1234 1234
4DeutschlandDE12123412341234123412DE12 1234 1234 1234 1234 12
5NiederlandeNL1212341234123412NL12 1234 1234 1234 12
6NorwegenNO1212341234123NO12 1234 1234 123
7LettlandLV1212341234123412341LV12 1234 1234 1234 1234 1
8MaltaMT12123412341234123412341234123MT12 1234 1234 1234 1234 1234 1234 123

ZelleFormel
C2=IBANtxt(B2)
C3=IBANtxt(B3)
C4=IBANtxt(B4)
C5=IBANtxt(B5)
C6=IBANtxt(B6)
C7=IBANtxt(B7)
C8=IBANtxt(B8)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#13
@RPP,

Dann möchte auch:


Code:
Function F_snb(c00)
  F_snb = Format(Left(c00 & Space(10), 32), Replace(Space(8), " ", "@@@@ "))
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#14
Nö, snb!
Mal die Griechen außer Acht lassend und die führenden Leerzeichen ignorierend,
gibt es Probleme bei Norwegen und Lettland.
(und das für alle außer GR geltende Format(rng, "!@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@") ist ja nicht wirklich schwierig):
CD
1IBAN_FormatiertF_SNB
2FI12 1234 1234 12FI12 1234 1234 12
3GR12 123 1234 1234 1234 1234GR12 1231 2341 2341 2341 234
4DE12 1234 1234 1234 1234 12DE12 1234 1234 1234 1234 12
5NL12 1234 1234 1234 12NL12 1234 1234 1234 12
6NO12 1234 1234 123N O121 2341 2341 23
7LV12 1234 1234 1234 1234 1LV1 2123 4123 4123 4123 41
8MT12 1234 1234 1234 1234 1234 1234 123MT12 1234 1234 1234 1234 1234 1234 123

ZelleFormel
C2=IBANtxt(B2)
D2=F_snb(B2)
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#15
Ich habe hier mal wieder was neues gelernt:

!@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ ...

Vielen Dank, RPP63!
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top
#16
Hi Ralph,

ohne Griechenland zu berücksichtigen:



Code:
Function F_snb(c00)
  F_snb = Trim(Format(Left(c00 & Space(10 - Len(c00) Mod 2), 32), Replace(Space(8 - Len(c00) Mod 2), " ", "@@@@ ")))
End Function
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#17
Oder ?:


Code:
Function F_snb(c00)
      F_snb = Format(c00, "!" & Replace(Space(8), " ", "&&&& "))
End Function

Und Griechenland berücksichtigt:

Code:
Function F_snb(c00)
      F_snb = Format(c00, "!" & Replace(Replace(Space(8), " ", "&&&& "), " &&&& ", IIf(Left(c00, 2) = "GR", " &&& ", " &&&& "), , 1))
End Function
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#18
(01.03.2018, 10:33)LCohen schrieb: Ich habe hier mal wieder was neues gelernt:

!@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ ...

Vielen Dank, RPP63!

Da wirst Du alt wie ne Kuh … ;)

@snb:
Jetzt ist es eine schöne knackige Lösung, wie von Dir gewohnt.
Aber erklär das mal dem unbedarften Querleser!  :21:

Das ! bedeutet ja "Platzhalterfüllung von links nach rechts erzwingen."
Daher ist mein Formatstring ja auch dem Laien zugänglich.

Es lohnt sich übrigens wirklich, mal die offizielle Hilfeseite zur Format()-Funktion zu studieren.
Dürfte für manch Aha-Erlebnis sorgen:
https://msdn.microsoft.com/de-de/VBA/Lan...plications

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#19
- ga bij een gewoon IBAN getal uit van 32 posities
- die 32 posities zijn in groepen van 4 opgedeeld, gescheiden door een spatie
- de posities moeten links uitgelijnd worden: daarvoor zorgt in Format het teken !

- omdat een IBAN nummer letters bevat beschouwt VBA het IBAN nummer als een tekenreeks (string)
- omdat een IBANnnumer in verschillende landen een verschillende lengte kan hebben gebruiken we een teken in Format, dat alleen iets teruggeeft als er ook werkelijk iets staat.: de ampersand: &
- we kunnen natuurlijk 32 ampersands met spaties gescheiden achter elkaar zetten, maar we kunnen ook gebruik maken van 8 spaties -space(8)-, die vervangen worden door 4 ampersands met een spatie '&&&& "; het resultaat is idientiek

- er is 1 uitzondering voor Griekenland: daar moet de tweede groep uit 3 getallen bestaan in plaats van 4
- de tweede groep van 4 ampersand is de eerst groep in de reeks die tussen 2 spaties staat
- met de opdracht Replace kunnen we in het derde argument aangeven hoe vaak een tekenreeks vervangen moet worden; als alleen de eerste tekenreeks van 4 ampersands met spatie voroaf en spatie erachter vervangen moet worden is het argument in de replacemethode voor aantal keren vervangen 1 replace( .. , .. ,1)

@RPP

Zo goed ? auch für Querleser ? ;)
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#20
Dank u wel! ;)
Gisteren was ik in Venlo, kocht koffie.

Aber ob man At (@) oder Ambersand (&) nimmt, ist hier Jacke wie Hose.
Der Unterschied wird ja im obigen MS-Link gut erklärt.
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste