Microsoft Excel

Herbers Excel/VBA-Archiv

PLZ Problem mit sehr vielen Werten in einer Zelle

Betrifft: PLZ Problem mit sehr vielen Werten in einer Zelle von: Bernd Göstenmeier
Geschrieben am: 22.09.2014 14:23:12

Hallo zusammen,
ich hoffe, ihr könnt mir helfen:

ich habe hier eine sehr große Datei mit über 600 (durch Komma getrennte) Postleitzahlen jeweils in einer Zelle (als Gebietszuordnungen gedacht - soll später in XML umgewandelt werden).

Leider sind bei den eigentlich 5 stelligen USA-PLZ die führenden Nullen verloren gegangen. Einzelne Werte zu korrigieren geht ja, aber wie kann ich das machen, wenn die Zelle eben so aussieht: ...,12345,32145,1234,54321,8745,...??

Bin für jeden Tipp dankbar - Vielen Dank!

Grüße
Bernd

  

Betrifft: AW: PLZ Problem mit sehr vielen Werten in einer Zelle von: {Boris}
Geschrieben am: 22.09.2014 14:38:00

Hi Bernd,

bisheriger Eintrag in A1, Ausgabe des neuen Eintrags (mit jeweiligem Format "00000") in A2.

Option Explicit

Sub til()
Dim arr, l As Long, s As String
arr = Split(Range("A1"), ",")
For l = 0 To UBound(arr)
    arr(l) = Format(arr(l), "00000")
Next l
Range("A2").NumberFormatLocal = "@"
s = Join(arr, ",")
Range("A2") = s
End Sub
VG, Boris


  

Betrifft: AW: PLZ Problem mit sehr vielen Werten in einer Zelle von: Bernd Göstenmeier
Geschrieben am: 22.09.2014 14:47:46

Hallo Boris,

super - genau so etwas habe ich gesucht! Vielen Dank!

Grüße
Bernd


  

Betrifft: AW: PLZ Problem mit sehr vielen Werten in einer Zelle von: Bernd Göstenmeier
Geschrieben am: 22.09.2014 15:09:35

Hallo Boris,

ähm, eine Frage hätte ich noch da es mit meinem VBA doch noch nicht so gut ist:

ich habe die Zellen mit den Postleitzahlen im Bereich A2:A67 hinterlegt. Wie muss ich das VBA anpassen, um jetzt nicht 66 mal eine Sub zu schreiben? Doofe Frage, aber ich komm nicht drauf :(

Grüße
Bernd


  

Betrifft: Dann noch einen Zyklus über den Bereich rein, ... von: Luc:-?
Geschrieben am: 22.09.2014 16:07:34

…Bernd:

Sub til()
    Const adBer$ = "A2:A67"
    Dim l As Long, arr As Variant, xZ As Range
    For Each xZ In Range(adBer)
        arr = Split(xZ, ",")
        For l = 0 To UBound(arr)
            arr(l) = Format(arr(l), "00000")
        Next l
        xZ.NumberFormatLocal = "@"
        xZ = Join(arr, ",")
    Next xZ
End Sub
Gruß, Luc :-?

Besser informiert mit …


  

Betrifft: AW: PLZ Problem mit sehr vielen Werten in einer Zelle von: Daniel
Geschrieben am: 22.09.2014 14:43:19

Hi

wenn die Werte auf einem Blatt stehen und auf dem Blatt sich sonst nichts befindet, dann so

1. Trenne die Zelle mit DATEN - DATENTOOLS - TEXT IN SPALTEN am Komma in einzelne Spalten auf.
jetzt sollten in 600 Zellen nebeneinander die Zahlen stehen
2. formatiere die Zellen mit dem benutzerdefinierten Zahlenformat "00000", damit die führenden 0er eingefügt werden
3. Speichere die Seite per Makro als CSV-Datei ohne den Zusatz Local:=true, dann wird das Komma als Trennzeichen verwendet (ActiveWorkbook.SaveAs "Dateiname", FileFormat:=xlcsv)

ohne Makro kannst du Schritt 3 so ausführen:
3-1 Blatt als CSV-Datei speichern
3-2 Blatt wieder über die Importfunktion einlesen, hierbei so einstellen, so dass keine Trennung erfolgt (alle Trennzeichen ausschalten)
3-2 mit Ersetzen die Semikolon durch Komma ersetzen.

das funktioniert, weil beim Speichern als CSV die Zahlen so in die CSV-Datei übernommen werden, wie sie in der Zelle angezeigt werden.

Gruß Daniel


  

Betrifft: AW: PLZ Problem mit sehr vielen Werten in einer Zelle von: Bernd Göstenmeier
Geschrieben am: 22.09.2014 15:35:37

Hallo Daniel,

erstmal Danke für deine Antwort. Den Weg hatte ich schon getestet: da leider die Anzahl der Postleitzahlen pro Zeile unterschiedlich ist, ist die Lösung nicht ganz praktikabel: ich habe zum Schluss eine Unmenge an Kommas in der CSV Datei zu viel drin die dann beim Importieren alle händisch gelöscht werden müssen.

Grüße
Bernd


  

Betrifft: AW: PLZ Problem mit sehr vielen Werten in einer Zelle von: Daniel
Geschrieben am: 22.09.2014 16:16:11

Hi
zum löschen der Kommas am Ende könntest du dann in einer Nachbarzelle die Formel einfügen:

=WennFehler(Links(A1;Finden(",,";A1)-1);A1) 
und diese Formel dann nach unten ziehen, kopieren und ggf als Wert einfügen.

Gruß Daniel


  

Betrifft: Vielen Dank für dein Desinteresse! :-( owT von: Luc:-?
Geschrieben am: 26.09.2014 01:03:08

:-?


 

Beiträge aus den Excel-Beispielen zum Thema "PLZ Problem mit sehr vielen Werten in einer Zelle"