AW: Text zerlegen - Nachfrage
26.07.2012 15:44:09
UweD
Hallo Mathias hallo Alfonso
Im unteren Bereich ist dir scheinbar ein kleiner Fehler unterlaufen (bei Gross/klein)
Ich hab das mal abgeändert und alle möglichen gemischten Schreibweisen GroSs /klEIn damit erschlagen
Außerdem weiter oben noch das Komme ganz am Ende eleminiert:
Sub Ersetze()
Const Spalte = 1
Const TrennZ = "|" ' ein Zeichen, dass nicht im Text vorkommten darf!
Dim z As Long, i As Long
Dim tmp As String, org As String
z = Cells(Rows.Count, Spalte).End(xlUp).Row
If z = 1 And Cells(Rows.Count, Spalte) "" Then z = Rows.Count
For i = 2 To z
tmp = Trim(Cells(i, Spalte))
'alle dreifachen Leerzeichen entfernen:
tmp = Replace(tmp, " ", " ", , , vbTextCompare)
'alle doppelten Leerzeichen entfernen:
tmp = Replace(tmp, " ", " ", , , vbTextCompare)
'Komma am Ende noch weg:
If Right(tmp, 1) = "," Then tmp = Left(tmp, Len(tmp) - 1)
'Ausnahme: Leerzeichen vorübergehend entfernen:
tmp = Replace(tmp, "Kühl OTC", "KühlOTC", , , vbTextCompare)
tmp = Replace(tmp, "OTC Kühl", "OTCKühl", , , vbTextCompare)
'Komma+Leer durch spezielles Trennzeichen ersetzen:
tmp = Replace(tmp, ", ", TrennZ, , , vbTextCompare)
'Komma durch spezielles Trennzeichen ersetzen:
tmp = Replace(tmp, ",", TrennZ, , , vbTextCompare)
'Leerzeichen durch spezielles Trennzeichen ersetzen:
tmp = Replace(tmp, " ", TrennZ, , , vbTextCompare)
'spezielles Trennzeichen wieder durch Kooma+Leer ersetzen:
tmp = Replace(tmp, TrennZ, ", ", , , vbTextCompare)
'Ausnahme wieder rückgängig machen:
tmp = Replace(tmp, "KühlOTC", "Kühl OTC", , , vbTextCompare)
tmp = Replace(tmp, "OTCKühl", "OTC Kühl", , , vbTextCompare)
'Komma am Ende noch weg:
If Right(tmp, Len(tmp)) = "," Then tmp = Left(tmp, Len(tmp) - 1)
'Dann vielleicht noch einige Groß-Klein-Korrekturen:
tmp = Replace(tmp, LCase("BTM"), UCase("BTM"), , , vbTextCompare)
tmp = Replace(tmp, LCase("OTC"), UCase("OTC"), , , vbTextCompare)
'Wert zurückschreiben
Cells(i, 3) = tmp 'Wenn alles passt, ändern in : Cells(i, Spalte) = tmp
Next i
End Sub
Gruß UweD