Registriert seit: 02.08.2014
Version(en): 2016
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
28.02.2018, 21:32
(Dieser Beitrag wurde zuletzt bearbeitet: 28.02.2018, 21:32 von RPP63.)
Mal gemäß der Vorgaben und selbst die Griechen inkludierend … Modul Modul1Option Explicit
Function IBANtxt$(rng$) Select Case Left(rng, 2) Case "GR" IBANtxt = Format(rng, "!@@@@ @@@ @@@@ @@@@ @@@@ @@@@ @@@@") Case Else IBANtxt = Format(rng, "!@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@") End Select End Function | A | B | C | 1 | Land | IBAN | IBAN_Formatiert | 2 | Finnland | FI121234123412 | FI12 1234 1234 12 | 3 | Griechenland | GR121231234123412341234 | GR12 123 1234 1234 1234 1234 | 4 | Deutschland | DE12123412341234123412 | DE12 1234 1234 1234 1234 12 | 5 | Niederlande | NL1212341234123412 | NL12 1234 1234 1234 12 | 6 | Norwegen | NO1212341234123 | NO12 1234 1234 123 | 7 | Lettland | LV1212341234123412341 | LV12 1234 1234 1234 1234 1 | 8 | Malta | MT12123412341234123412341234123 | MT12 1234 1234 1234 1234 1234 1234 123 |
Zelle | Formel | 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)
Registriert seit: 29.09.2015
Version(en): 2030,5
28.02.2018, 22:57
(Dieser Beitrag wurde zuletzt bearbeitet: 28.02.2018, 22:57 von snb.)
@RPP, Dann möchte auch: Code: Function F_snb(c00) F_snb = Format(Left(c00 & Space(10), 32), Replace(Space(8), " ", "@@@@ ")) End Function
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
01.03.2018, 08:14
(Dieser Beitrag wurde zuletzt bearbeitet: 01.03.2018, 08:15 von RPP63.)
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): | C | D | 1 | IBAN_Formatiert | F_SNB | 2 | FI12 1234 1234 12 | FI12 1234 1234 12 | 3 | GR12 123 1234 1234 1234 1234 | GR12 1231 2341 2341 2341 234 | 4 | DE12 1234 1234 1234 1234 12 | DE12 1234 1234 1234 1234 12 | 5 | NL12 1234 1234 1234 12 | NL12 1234 1234 1234 12 | 6 | NO12 1234 1234 123 | N O121 2341 2341 23 | 7 | LV12 1234 1234 1234 1234 1 | LV1 2123 4123 4123 4123 41 | 8 | MT12 1234 1234 1234 1234 1234 1234 123 | MT12 1234 1234 1234 1234 1234 1234 123 |
Zelle | Formel | 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)
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
Ich habe hier mal wieder was neues gelernt:
!@@@@ @@@@ @@@@ @@@@ @@@@ @@@@ @@@@ ...
Vielen Dank, RPP63!
Registriert seit: 13.04.2014
Version(en): 365
01.03.2018, 11:17
(Dieser Beitrag wurde zuletzt bearbeitet: 01.03.2018, 11:17 von BoskoBiati.)
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.
Registriert seit: 29.09.2015
Version(en): 2030,5
01.03.2018, 12:04
(Dieser Beitrag wurde zuletzt bearbeitet: 01.03.2018, 12:04 von snb.)
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
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
(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...plicationsGruß 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)
Registriert seit: 29.09.2015
Version(en): 2030,5
02.03.2018, 10:56
(Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2018, 10:56 von snb.)
- 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 ? ;)
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
02.03.2018, 13:02
(Dieser Beitrag wurde zuletzt bearbeitet: 02.03.2018, 13:02 von RPP63.)
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)
|