es sollen Zellen, die als Text formatiert sind geprüft werden auf die Anzahl der Zeichen. Wenn es 4 Zeichen sind soll an erster Stelle dieser Zelle eine 0 eingefügt werden, damit es 5-stellige Postleitzahlen sind.
anbei etwas was auch 100.000 PLZ mal schnell umwandeln würde. ;)
Code:
Sub Makro() Dim AnzahlZeilen As Long, lngStart As Long Dim ArrPlz(), rng As Range, i As Long, intCol As Integer lngStart = 1 ' anpassen ab welcher Zeile beginnen die PLZ intCol = 6 'in welcher Spalte sind die PLZ AnzahlZeilen = Cells(Rows.Count, intCol).End(xlUp).Row Set rng = Range(Cells(lngStart, intCol), Cells(AnzahlZeilen, intCol)) rng.NumberFormat = "@" ArrPlz = rng For i = 1 To UBound(ArrPlz) ArrPlz(i, 1) = Format(ArrPlz(i, 1), "00000") Next rng = ArrPlz End Sub
01.02.2018, 16:07 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2018, 16:07 von GMG-CC.)
Moin Jörg,
das geht im Endeffekt über die Sprache M. Prinzip in plain Excel: Rechts("0"&A1;5) was dann als M-Formel in einer benutzerdefinierten Spalte so aussieht:
Code:
=Text.End("0"&[Spalte1],5)
Ich habe mal einige Text-Zahlen als Datei angehängt. Ach ja, Power Query wird natürlich "mitdenken" und die Text-Zahlen im 2. Schritt als Zahl umwandeln. Den Schritt lösche ich einfach oder formatiere die Spalte explizit als Text.. Eine Prüfung auf ISNUMERIC habe ich mir nicht angetan.
Beste Grüße Günther
Excel-ist-sexy.de …schau doch mal rein! Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Folgende(r) 1 Nutzer sagt Danke an GMG-CC für diesen Beitrag:1 Nutzer sagt Danke an GMG-CC für diesen Beitrag 28 • Jockel