Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeichen am Textanfang einfügen
#1
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
Antworten Top
#2
hi,

ungeprüft:
If Len(Cells(AnzahlZeilen, 6).Value) = 4 Then
   Cells(AnzahlZeilen, 6)="0" & Cells(AnzahlZeilen, 6)
end if
Antworten Top
#3
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
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top
#4
Moin,
Excel 2016 ... Da würde ich über Daten | Abrufen und transformieren, aka Power Query nachdenken, also ganz ohne VBA.
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!
Antworten Top
#5
(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...
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#6
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


Angehängte Dateien
.xlsx   immer 5-stellig.xlsx (Größe: 21,89 KB / Downloads: 2)
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:
  • Jockel
Antworten Top


Gehe zu:


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