Clever-Excel-Forum

Normale Version: Zeichen am Textanfang einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

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.

So sieht das Makro bis jetzt aus:

Sub Makro ()

If Len(Cells(AnzahlZeilen, 6).Value) = 4 Then

End Sub

Vielen Dank
hi,

ungeprüft:
If Len(Cells(AnzahlZeilen, 6).Value) = 4 Then
   Cells(AnzahlZeilen, 6)="0" & Cells(AnzahlZeilen, 6)
end if
Hi,

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
Moin,
Excel 2016 ... Da würde ich über Daten | Abrufen und transformieren, aka Power Query nachdenken, also ganz ohne VBA.
(01.02.2018, 13:02)GMG-CC schrieb: [ -> ]Moin,
... Da würde ich über Power Query nachdenken...
Hallo Günther, nachgedacht darüber habe ich auch, aber hierfür (noch) keinen Ansatz...
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.  Angel