gibt es eine Möglichkeit Straßennamen die folgendermaßen aufgebaut sind: Teststr.
oder
Test Str. zu erkennen und folgendermaßen umzubennenen, Teststraße oder
Test Straße
Danke im vorraus für Hilfe
Option Explicit
' "Str.", "str.", "Str ", "str " als Straße bzw. straße
Public StraßeLang As String
Sub Strasse()
Dim lZeile As Long
Dim lLetzte As Long
Dim sEingabe As String
lLetzte = IIf(Range("A65536") <> "", 65536, Range("A65536").End(xlUp).Row)
For lZeile = 1 To lLetzte
sEingabe = Cells(lZeile, 1).Value & " " ' ein Space anhängen
Call StraßeAusgeschrieben(sEingabe) ' Str. ausschreiben !
Cells(lZeile, 1).Value = Trim(StraßeLang) ' zurück übertragen
Next lZeile
End Sub
'
' ausschreiben des Begriffs "Straße", so dass Abkürzungen wie "Str.", "str."
' aber auch Schreibfehler, wie "Strasse" oder gar Dreher, wie "Starße"
' korrigiert werden.
'
Function StraßeAusgeschrieben(StraßenName As String)
Const StrGr As String = "Straße" ' Straße groß geschrieben
Const strKl As String = "straße" ' straße klein geschrieben
If InStr(StraßenName, "Str.") > 0 Then
StraßeLang = Application.Substitute(StraßenName, "Str.", StrGr)
ElseIf InStr(StraßenName, "Str ") > 0 Then
StraßeLang = Application.Substitute(StraßenName, "Str ", StrGr)
ElseIf InStr(StraßenName, "str.") > 0 Then
StraßeLang = Application.Substitute(StraßenName, "str.", strKl)
ElseIf InStr(StraßenName, "str ") > 0 Then
StraßeLang = Application.Substitute(StraßenName, "str ", strKl)
ElseIf InStr(StraßenName, "Strasse") > 0 Then
StraßeLang = Application.Substitute(StraßenName, "Strasse", StrGr)
ElseIf InStr(StraßenName, "strasse") > 0 Then
StraßeLang = Application.Substitute(StraßenName, "strasse", strKl)
ElseIf InStr(StraßenName, "Starße") > 0 Then
StraßeLang = Application.Substitute(StraßenName, "Starße", StrGr)
ElseIf InStr(StraßenName, "starße") > 0 Then
StraßeLang = Application.Substitute(StraßenName, "starße", strKl)
Else
StraßeLang = StraßenName
End If
Vorbereitung der Daten: Stelle sicher, dass die Straßennamen in einer Spalte deiner Excel-Tabelle stehen. Nehmen wir an, die Straßennamen befinden sich in Spalte A.
Ersatzfunktion verwenden: Drücke Strg + H, um das Dialogfeld "Suchen und Ersetzen" zu öffnen.
Str. oder str.Straße ein.VBA-Makro nutzen: Für komplexere Fälle, in denen auch Schreibfehler wie Starße oder Strasse berücksichtigt werden sollen, kannst du ein VBA-Makro erstellen:
Sub Strasse()
Dim lZeile As Long
Dim lLetzte As Long
Dim sEingabe As String
lLetzte = IIf(Range("A65536") <> "", 65536, Range("A65536").End(xlUp).Row)
For lZeile = 1 To lLetzte
sEingabe = Cells(lZeile, 1).Value & " " ' ein Space anhängen
Call StraßeAusgeschrieben(sEingabe) ' Str. ausschreiben
Cells(lZeile, 1).Value = Trim(StraßeLang) ' zurück übertragen
Next lZeile
End Sub
Funktion für die Umbenennung erstellen:
Function StraßeAusgeschrieben(StraßenName As String)
Const StrGr As String = "Straße"
Const strKl As String = "straße"
' Hier wird die Logik zur Ersetzung implementiert
' (Siehe oben für die Logik)
End Function
Fehler: Das Makro funktioniert nicht.
Fehler: Einige Abkürzungen werden nicht ersetzt.
Excel-Funktionen: Statt VBA kannst du auch die SUBSTITUTE-Funktion verwenden, um Abkürzungen in einer neuen Spalte zu ersetzen.
=SUBSTITUTE(A1, "Str.", "Straße")
Power Query: Wenn du größere Datenmengen hast, kann Power Query eine effiziente Möglichkeit sein, um Straßennamen zu bereinigen und zu transformieren.
Teststr. wird zu Teststraße.Test Str. wird zu Test Straße.Starße wird zu Straße durch das VBA-Makro.1. Wie kann ich mehrere Abkürzungen gleichzeitig ersetzen?
Du kannst die SUBSTITUTE-Funktion verschachteln oder mehrere Suchen und Ersetzen-Vorgänge in einem Makro kombinieren.
2. Was ist die beste Methode, um Straßennamen in großen Datenmengen zu bearbeiten?
Für große Datenmengen ist Power Query oft die effizienteste Lösung, da sie eine visuelle Schnittstelle bietet und Änderungen einfacher nachverfolgt werden können.