Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Straße und Hausnummer via VBA trennen

Straße und Hausnummer via VBA trennen
28.05.2018 20:27:59
Sabrina
Hallo Leute,
ich habe in einer Zelle den Straßennamen mit der Hausnummer stehen.
Nun muss ich bei der Weiterverarbeitung in VBA die Hausnummer von der Straße trennen.
Leider gibt es verschiedene Schreibformen wie :
Hauptstraße 2 - Hauptstr. 2 - Hauptstr.2 - Hauptstr. 2a - Hauptstr. 2-4 - Große Hauptstr. 2 ... usw.
https://www.herber.de/bbs/user/121862.xlsm
Kann mir jemand helfen?
Liebe Grüße Sabbel
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ein Ansatz
28.05.2018 20:35:31
Fennek
Hallo,
versuche diesen Code:

Str_Nr = cells(5,3)
for i = 1 to len(Str_Nr)
if mid(Str_Nr, i,1) like "#" then
Str = left(Str_Nr, i-1)
Nr = mid(Str_Nr,i)
exit for
end if
next i
mfg
(Läppy bei Microsoft?)
(ungetestet)
AW: ein Ansatz
28.05.2018 20:51:22
Sabrina
Oh Danke ..
funktioniert wunderbar
Anzeige
AW: Straße und Hausnummer via VBA trennen
29.05.2018 08:13:54
Martin
Hallo Sabrina,
hier noch eine zweite Möglichkeit:
    Dim arrStreet As Variant, strName As String
strName = Cells(5, 3)                           'Verweis auf Zelle mit Straßennamen
arrStreet = Split(strName, " ")
MsgBox Left(strName, Len(strName) - Len(arrStreet(UBound(arrStreet))) - 1) 'Straßenname
MsgBox arrStreet(UBound(arrStreet))                                        'Hausnummer
Viele Grüße
Martin
Anzeige
...es geht sogar noch einfacher....
29.05.2018 08:19:11
Martin

Dim strName As String
strName = Cells(5, 3) 'Verweis auf Zelle mit Straßennamen
MsgBox Left(strName, InStr(strName, " ") - 1)                'Straßenname
MsgBox Right(strName, Len(strName) - InStrRev(strName, " ")) 'Hausnummer
Viele Grüße
Martin
Anzeige
AW: Straße und Hausnummer via VBA trennen
29.05.2018 10:20:39
Daniel
Hi
wenn man davon ausgehen kann, dass die Hausnummer mit der ersten Ziffer beginnt, dann kannst du auch die Postion der ersten Ziffer suchen und dann mit LINKS bzw TEIL und der Postion der ersten Ziffer die Adresse auftrennen.
die Position der ersten Ziffer im Text bekommst du mit dieser Formel in B1 (Text in A1):
B1: =AGGREGAT(15;6;FINDEN({1.2.3.4.5.6.7.8.9};A1);1)
in C1 und D1 lässt du dir dann Straße und Hausnummer ausgeben:
C1: =Glätten(Links(A1;B1-1))
D1: =Teil(A1;B1;99)
das Glätten entfernt ggf noch das Leerzeichen, das zwischen Straße und Hausnummer steht.
Gruß Daniel
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Straße und Hausnummer in Excel trennen


Schritt-für-Schritt-Anleitung

Um die Hausnummer von der Straße zu trennen in Excel, kannst du verschiedene Methoden verwenden. Die einfachste Methode ist die Nutzung von VBA. Hier ist ein Schritt-für-Schritt-Ansatz:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject (deine_datei.xlsx)" klickst und "Einfügen" > "Modul" wählst.
  3. Kopiere und füge den folgenden VBA-Code in das Modul ein:
Sub TrenneStrasseUndHausnummer()
    Dim Str_Nr As String
    Dim Str As String
    Dim Nr As String
    Dim i As Integer

    Str_Nr = Cells(5, 3) ' Hier die Zelle anpassen
    For i = 1 To Len(Str_Nr)
        If Mid(Str_Nr, i, 1) Like "#" Then
            Str = Left(Str_Nr, i - 1)
            Nr = Mid(Str_Nr, i)
            Exit For
        End If
    Next i

    MsgBox "Straße: " & Str
    MsgBox "Hausnummer: " & Nr
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Führe das Makro über ALT + F8 aus und wähle TrenneStrasseUndHausnummer.

Häufige Fehler und Lösungen

  • Problem: Der Code gibt keine Ergebnisse zurück.

    • Lösung: Stelle sicher, dass die Zelle, die die Adresse enthält, korrekt referenziert ist (z.B. Cells(5, 3)).
  • Problem: Fehlermeldungen beim Ausführen des Makros.

    • Lösung: Überprüfe, ob du in der Zelle den richtigen Datentyp hast. Es sollte ein Textwert sein.

Alternative Methoden

Falls du keinen VBA-Code verwenden möchtest, kannst du auch Formeln nutzen:

  1. Position der ersten Ziffer suchen: In Zelle B1:

    =AGGREGAT(15;6;FINDEN({1,2,3,4,5,6,7,8,9};A1);1)
  2. Straße extrahieren: In Zelle C1:

    =GLÄTTEN(Links(A1;B1-1))
  3. Hausnummer extrahieren: In Zelle D1:

    =TEIL(A1;B1;99)

Diese Formeln helfen dir, die Adresse in Excel zu trennen ohne VBA.


Praktische Beispiele

Angenommen, du hast in Zelle A1 die Adresse "Hauptstraße 2a".

  • Mit dem VBA-Code erhältst du:

    • Straße: Hauptstraße
    • Hausnummer: 2a
  • Mit den Formeln:

    • C1 zeigt "Hauptstraße"
    • D1 zeigt "2a"

Tipps für Profis

  • Wenn du mit verschiedenen Formaten von Straßen und Hausnummern arbeitest, teste deine VBA-Funktion ausgiebig mit verschiedenen Eingaben.
  • Halte deine Daten in einer Tabelle organisiert, um die Adressen zu trennen und die Übersicht zu behalten.
  • Wenn du häufig mit Adressen arbeitest, erstelle eine benutzerdefinierte Funktion in VBA, um die Hausnummer und Straße zu trennen.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Adressen auf einmal trennen?
Du kannst eine Schleife im VBA-Code einfügen, die durch mehrere Zellen iteriert und die Ergebnisse in benachbarte Zellen schreibt.

2. Was tun, wenn die Hausnummer keinen Ziffern enthält?
In solchen Fällen ist es sinnvoll, die Eingabedaten zu standardisieren oder eine zusätzliche Logik im Code oder in der Formel einzufügen, um diese Ausnahmen zu behandeln.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige