AW: Name & Adresse in Zelle: nur Strasse löschen
24.02.2007 16:03:40
Daniel
Hallo
probier mal diese Methode.
ich habs als Funktion geschrieben, dann kann man es auch in Excel verwenden:
Hier das kleine Makro
Sub Strassennamen_raus()
Dim Zelle As Range
For Each Zelle In Range("B1:B1000")
Zelle.Value = StrasseLöschen(Zelle.Value)
Next
End Sub
und hier die Funktion:
Public
Function StrasseLöschen(Addr As String) As String
Dim Text As String, Text2 As String
Dim i As Long, pt1 As Long, pt2 As Long
Text = Addr
Text = WorksheetFunction.Substitute(Text, "Strasse", "|")
Text = WorksheetFunction.Substitute(Text, "strasse", "|")
Text = WorksheetFunction.Substitute(Text, "Strase", "|")
Text = WorksheetFunction.Substitute(Text, "strase", "|")
Text = WorksheetFunction.Substitute(Text, "Straße", "|")
Text = WorksheetFunction.Substitute(Text, "straße", "|")
Text = WorksheetFunction.Substitute(Text, "Str ", "|")
Text = WorksheetFunction.Substitute(Text, "str ", "|")
Text = WorksheetFunction.Substitute(Text, "Str.", "|")
Text = WorksheetFunction.Substitute(Text, "str.", "|")
Text = WorksheetFunction.Substitute(Text, "Allee", "|")
Text = WorksheetFunction.Substitute(Text, "allee", "|")
Text = WorksheetFunction.Substitute(Text, "Gasse", "|")
Text = WorksheetFunction.Substitute(Text, "gasse", "|")
Text = WorksheetFunction.Substitute(Text, "Weg", "|")
Text = WorksheetFunction.Substitute(Text, "weg ", "|")
For i = 1 To 3 'falls doppelte Leerzeichen vorkommen
Text = WorksheetFunction.Substitute(Text, " |", "|")
Text = WorksheetFunction.Substitute(Text, "| ", "|")
Text = WorksheetFunction.Substitute(Text, "|.", "|")
Next
pt1 = InStr(Text, "|")
'Kein Strassennamen vorhanden
If pt1 = 0 Then
StrasseLöschen = Addr
Exit Function
End If
'Hausnummer löschen
If IsNumeric(Mid(Text, pt1 + 1, 1)) Then
pt2 = InStr(pt1, Text, " ")
Text2 = Mid(Text, pt2)
Text = Left(Text, pt1)
End If
'Strassennamen löschen.
pt1 = InStrRev(Text, " ")
pt2 = InStrRev(Text, Chr(10))
If pt1 > pt2 Then pt2 = pt1
Text = Left(Text, pt2)
StrasseLöschen = Text & Text2
End Function
Gruß, Daniel