AW: Makro für Trennung Str., Hnr und Zusatz
26.05.2014 14:06:16
onkelbobby
Danke für die prompte Antwort. Diesen Link hatte ich auch schon gefunden. Dabei wird jedoch im obigen Beispiel in einer Spalte "An der Mauer 11" und in der nächsten "A" angezeigt, da noch ein Leerzeichen zwischen Hausnr. und Zusatz ist.
Als Makro hätte ich das gerne, weil immer wieder neue Daten aus einer anderen Datei per Makro geholt und aufbereitet werden. In diesem Zusammenhang möchte ich nicht noch manuell eingreifen müssen.
Ich habe diesen Code gefunden, jedoch mit dem Problem der "Uhrzeitanzeige" (11:00 AM, statt 11 A).
Sub TrenneStrasseNummer()
Dim Zellwert$, Zelle As Range, Zeile%
Sheets("SAP-Liste").Select
For Each Zelle In ActiveSheet.Range("C5:C500")
Zeile = Zeile + 1
Zellwert = ActiveSheet.Range("C" & Zeile + 1).Value
ActiveSheet.Range("K" & Zeile + 1).Value = StrName(Zellwert)
ActiveSheet.Range("L" & Zeile + 1).Value = HsNr(Zellwert)
Next
End Sub
Function StrName(Strasse As String) As String
Dim pos As Integer
Dim Laenge As Integer
pos = PosHsNrInStrasse(Strasse)
Laenge = Len(Strasse)
If pos > 0 Then
StrName = Trim(Left(Strasse, pos - 1))
Else
StrName = Strasse
End If
End Function
Function HsNr(Strasse As String) As String
Dim pos As Integer
Dim Laenge As Integer
pos = PosHsNrInStrasse(Strasse)
Laenge = Len(Strasse)
If pos > 0 Then
HsNr = Right(Strasse, Laenge - pos + 1)
Else
HsNr = ""
End If
End Function
Function PosHsNrInStrasse(Strasse As String) As Integer
Dim Zaehler As Integer
Dim Laenge As Integer
Dim x As String
Laenge = Len(Strasse)
PosHsNrInStrasse = 0
For Zaehler = Laenge To 3 Step -1
x = Mid(Strasse, Zaehler, 1)
If IsNumeric(x) Then
PosHsNrInStrasse = InStr(Strasse, x)
End If
Next
End Function