Telefonnummernspalte bereinigen
12.05.2020 14:26:57
STeve
In der geladenen Datei sind in Spalte F Telefonnummern. ca. 3000 Nummern. Diese müsste ich per VBA bereinigen.
Diese Daten haben leider eine schlechte Qualität:
z.B.: 0039... anstatt +39
0043....anstatt +43
43...anstatt +43
52....anstatt +4352
664...anstatt +43664
676....anstatt +43676
041... anstatt +41
Leerzeichen......../........-.......usw. vorhanden
usw. usw.
Wie im Modul ersichtlich versuche ich es mit Replace.
Sub test()
Dim meineZeile As Long
With Sheets("Tabelle1")
.Columns(6).NumberFormat = "@" ' Spalte 6 = Spalte F in Text umwandeln
For meineZeile = 2 To .Cells(Rows.Count, 6).End(xlUp).Row ' von Zeile 1 bis letzte gefüllte _
Zeile in Spalte 6 = Spalte F
Dim Wert As String
Wert = .Cells(meineZeile, 6).Value
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "/", "")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "-", "")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, " ", "")
''''###### sollte nur auf den linken Anfangsbereich der Nummer zutreffen####
Left(Wert, 3) = Replace(Left(Wert, 3), "699", "+43699")
' .Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "699", "+43699")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "676", "+43676")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "664", "+43664")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "00664", "+43664")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "660", "+43660")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "650", "+43650")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "681", "+43681")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "680", "+43680")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "677", "+43677")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "0049", "+49")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "0041", "+41")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "0039", "+39")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "0043", "+43")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "43", "+43")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "056", "+4356")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "053", "+435")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "052", "+4352")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "051", "+4351")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "054", "+4354")
.Cells(meineZeile, 6).Value = Replace(.Cells(meineZeile, 6).Value, "(0)", "")
Next meineZeile
End With
End Sub
1.) Schaffe ich es nicht dass nur die ersten Zeichen der Nummer mit Replace zu tauschen und weiter werde ich da vermutlich nicht alle Möglichkeiten der - Falschschreibung - abdecken können.
2.) wäre natürlich eine Überarbeitung/Änderung Codes bzw. andere Vorgangsweise zur Bereinigung der Spalte F schöner und vermutlich schneller und genauer.
Leider kann ich derzeit keine Muster-Datei hochladen.
Ich hoffe auf eure Hilfe.
Besten Dank
STeve