Suchen von rechts?

Hallo,

kann man analog zu „suchen“ und „finden“ Texte von rechts durchsuchen lassen?

Vielen Dank schonmal

Gruß
Karsten

Hallo Karsten,

kann man analog zu „suchen“ und „finden“ Texte von rechts
durchsuchen lassen?

gesucht wird bei uns in der BRD immer von links. In arabischen Ländern wir imho von rechts gesucht, da dort auch von rechts geschrieben wird.

Du kannst allerdings Platzhalter für das Suchen verwenden. So werden auch rechte Textteile gefunden.

Unter Extras/Optionen/International/von rechts nach links kannst du die Ausrichtung entsprechend ändern.

Somit dürfte eine Suche auch erfolgreich sein.
Vielleicht beschreibst du mal genau, was du vorhast?

Grüße aus Essen
Wolfgang

Hallo,

und vielen Dank für die Antwort.

Vor habe ich folgendes:

Habe eine Tabelle mit Adressen.
Darin befinden sich Strassenname und Hausnummer und Hausnummerzusatz gesamt in einem Feld.
Ich möchte nun gerne den Strassennamen in ein eigenes Feld sowie Hausnummer und Hausnummerzusatz in ein weiteres Feld bekommen.

Strasse und Hausnummer sind in der Regel getrennt durch:
„LEERZEICHEN“ oder „.“
Hausnummer und Zusatz (z.B.12b) sind zusammengeschrieben und verursachen i.d.R. keine Probleme.

Da es jetzt aber viele Strassen gibt die mehrere Leerzeilen oder gar Punkte haben, müsste die Suche von rechts beginnen um von dort das 1. Suchzeichen zu finden.

Bsp.:

Kiepestr. 11b
St. Anton Platz 5
Auf dem Kampe 19c

Eine Alternative wäre noch die Möglichkeit nach Ascii-Werten zu suchen um Zahlen im String zu finden.
Leider hab ich dazu bisher auch keine Möglichkeit gefunden.

Soweit …

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo,

eine, wenn auch unhandliche, Möglichkeit: als Parameter für „erstes Zeichen“ Den Wert LÄNGE(Text)-[max. Anzahl Zeichen von Hausnummer und Zusatz+2] eintragen. Sollte in den meisten Fällen funktionieren. Dann wird erst ab kurz vor der Hausnummer gesucht.

(LÄNGE ist eine Excel-Funktion, der Term in [] muß von Dir passend gewählt werden.)

Gruß Kubi

Hi,
danke für die Antwort.

könnte wahrscheinlich eine Menge Strassen „erschlagen“.
Hatte beim 1. Durchlauf ähnlichen Gedanken habe allerdings das 1. Zeichen als festen Wert gesetzt und nicht variabel.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Karsten,

mit Hilfe von benutzerdefinierten Funktionen unter VBA kann man auch Texte beginnend von rechts durchsuchen und Textteile abtrennen. Bezogen auf dein Problem mit den Strassen und Hausnummer sähe die Lösung im Grundansatz so aus:
>

Function HausNr(StrasseNr As String) As String
' Abtrennen der rechten Zeichen bis zum gesuchten Zeichen als Hausnummer
 Dim Text As String
 HausNr = ""
 Text = StrasseNr
 Do
 HausNr = Right(Text, 1) & HausNr
 Text = Left(Text, Len(Text) - 1)
 Select Case Right(Text, 1)
 Case " ", "."
 Exit Do
 Case Else
 If Len(Text) = 0 Then 'Zeichen sind nicht vorhanden
 HausNr = ""
 Exit Do
 End If
 End Select
 Loop
End Function

Function Strasse(StrasseNr As String) As String
' Entfernen der rechten Zeichen mit der Hausnummer
 Dim Text As String
 Text = StrasseNr
 Do
 Text = Left(Text, Len(Text) - 1)
 Select Case Right(Text, 1)
 Case " ", "."
 Strasse = Trim(Text)
 Exit Do
 Case Else
 If Len(Text) = 0 Then 'Zeichen sind nicht vorhanden, keine Hausnummer
 Strasse = StrasseNr
 Exit Do
 End If
 End Select
 Loop
End Function

Diese Funktionen kann man jetzt noch verfeinern, um z.B. zu prüfen, ob die abgetrennte Hausnummer tatsächlich eine Zahl enthält. In der Tabelle sieht das Ganze dann so aus:

 A B C 
7 Kiepestr. 11b Kiepestr. 11b 

Benutzte Formeln:
B7: =Strasse(A7)
C7: =HausNr(A7)

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Karsten
Mit diesem VBA-Makro kannst du „alle Strassen erschlagen“.
Adresse in Spalte „A“, nachher Strasse in „A“, Nr in „B“
Es trennt dir die Strasse und die Nummer in zwei Spalten auf, falls die letzte Zeichengruppe mit einer Zahl beginnt.
Es trennt also „auf dem Hügel oben links 3xz“, jedoch nicht „am Bach unten im Schilf“, und nicht „am Berg xyz37“. Du kannst das noch beliebig verfeinern!

Sub Strasse\_Nummer\_Trennen()
Dim Str1$, Str2$, i%, Bereich As Range, Zelle As Range
Set Bereich = Range("A:A")
For Each Zelle In Bereich
 'sobald leere Zelle kommt ist fertig
 If IsEmpty(Zelle) Then Exit For
 'String sichern, ohne Leerschläge vorn und hinten
 Str1 = Trim(Zelle.Value)
 'String zum Bearbeiten
 Str2 = Str1
 'Schleife zur Entfernung aller Leerzeichen
 While InStr(Str2, " ") \> 0 ' es hat Leerzeichen
 i = InStr(Str2, " ") ' an dieser Stelle ist das Leerzeichen
 Str2 = Mid(Str2, i + 1) ' Schwanz nach dem Leerzeichen
 Wend
 'nur wenn das erste Zeichen im Schwanz eine Zahl ist
 'andernfalls wird die Adresse nicht verändert
 If IsNumeric(Left(Trim(Str2), 1)) Then
 'Vorderer Teil der Adresse = Strasse eintragen
 Zelle = Trim(Left(Str1, Len(Str1) - Len(Str2) - 1))
 'letzter Teil der Adresse = eine Nummer eintragen
 Zelle.Offset(0, 1) = Trim(Str2)
 End If
 Next
End Sub

Gruss
Erich

Hallo Reiner,

Habe eine Tabelle mit Adressen.
Darin befinden sich Strassenname und Hausnummer und
Hausnummerzusatz gesamt in einem Feld.
Ich möchte nun gerne den Strassennamen in ein eigenes Feld
sowie Hausnummer und Hausnummerzusatz in ein weiteres Feld
bekommen.

dafür gibt es VB/VBA, damit kannst du eine Funktion schreiben, die von hinten nach vorne das Feld durchläuft und dementsprechend die Aufteilung vornimmt.

Wenn du kein VB/VBA programmieren kannst, stelle eine neue Anfrage im Brett Visual Basic mit der Überschrift: Hausnummer aus Straße auslesen.

Grüße aus Essen
Wolfgang

Hallo,

und vielen Dank für alle Antworten - sie haben mir geholfen.