Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1004to1008
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Straßennamen trennen

Straßennamen trennen
26.08.2008 08:44:53
Michael
Hallo Miteinander!
Ich bekomme Straßennamen übergeben in der Form
VierländerDamm78A
Weiß jemand, ob es eine Funktion zum Trennen dieser Daten gibt? Oder einen Lösungsansatz?
Danke
Michael

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Straßennamen trennen
26.08.2008 09:15:00
Tino
Hallo,
die einigste Lösung die mir dazu einfällt ist diese.
Im Bespiel gehe ich davon aus, dass die Straßennamen in Spalte A ab A1 eingetragen sind
Option Explicit

Sub Trennen()
Dim A As Long, B As Long
B = 1
    For A = 1 To Cells(Rows.Count, 1).End(xlUp).Row
     
        Do While B <= Len(Cells(A, 1))
         If InStr("1234567890", Mid(Cells(A, 1), B, 1)) > 0 Then
          Cells(A, 2) = Left$(Cells(A, 1), B - 1)
          Cells(A, 3) = Right$(Cells(A, 1), Len(Cells(A, 1)) - B + 1)
          Exit Do
         End If
         
         B = B + 1
        Loop
      B = 1
    Next A

End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Straßennamen trennen
26.08.2008 09:50:23
Tino
Hallo,
etwas schneller müsste die gehen.
Vorrausetzung, die Hausnummer besteht maximal aus einem Zusatz z. Bsp. 1a oder 17b oder wie in deinem Beispiel 78A usw.…, es muss aber eine Hausnummer vorhanden sein!!
Sub Trennen()
Dim A As Long, B As Long
B = 1
    For A = 1 To Cells(Rows.Count, 1).End(xlUp).Row
      
        Do While IsNumeric(Mid(Cells(A, 1), Len(Cells(A, 1)) - B, 1))
          B = B + 1
        Loop
          Cells(A, 2) = Left$(Cells(A, 1), Len(Cells(A, 1)) - B)
          Cells(A, 3) = Right$(Cells(A, 1), B)
      B = 1
    Next A

End Sub


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: Straßennamen trennen
26.08.2008 10:35:48
Peter
Hallo Michael,
das nachfolgende Makro trennt auch vor jedem Großbuchstaben im Straßen-Namen.
Allerdings gehen Namen wie StraßeDes17.Juni schief.
Gruß Peter

Public Sub TrennEs()
Dim lZeile    As Long
Dim sZeichen  As String
Dim iIndex    As Integer
For lZeile = 1 To Cells(Rows.Count, 1).End(xlUp).Row
Range("B" & lZeile & ":C" & lZeile).ClearContents
Cells(lZeile, 1).Value = Trim(Cells(lZeile, 1).Value)
For iIndex = 1 To Len(Cells(lZeile, 1).Value)
sZeichen = Mid(Cells(lZeile, 1).Value, iIndex, 1)
If IsNumeric(sZeichen) Then
Cells(lZeile, 3).Value = Mid(Cells(lZeile, 1).Value, iIndex)
Exit For
Else
If sZeichen = UCase(sZeichen) And iIndex > 1 Then
Cells(lZeile, 2).Value = Cells(lZeile, 2).Value & " "
Cells(lZeile, 2).Value = Cells(lZeile, 2).Value & sZeichen
Else
Cells(lZeile, 2).Value = Cells(lZeile, 2).Value & sZeichen
End If
End If
Next iIndex
Next lZeile
End Sub


Anzeige
AW: Ergänzung
26.08.2008 10:41:00
Peter
Hier noch eine Ergänzung
anstelle von
If sZeichen = UCase(sZeichen) And iIndex > 1 Then
besser
If sZeichen = UCase(sZeichen) And sZeichen 1 Then
Gruß Peter
Straße und Nr. trennen per Formel
26.08.2008 10:51:05
WF
Hi Michael,
Haus-Nr. in D1:
{=TEIL(A1;VERGLEICH(1;ISTZAHL(TEIL(A1;SPALTE(1:1);1)*0)*1;);99)}
ARRAY-Formel {=geschweifte Klammern} nicht eingeben;
Abschluß der Formel mit gleichzeitig Strg / Shift / Enter; - das erzeugt sie.
Straßenname in C1:
=LINKS(A1;LÄNGE(A1)-LÄNGE(D1))
Salut WF
AW: Straßennamen trennen
26.08.2008 11:12:41
Gerd
Hallo zusammen!
die Platzierung des Ergebnisses ist offengelassen.
Für an Ort u. Stelle:

Sub test()
Cells(1, 1).Value = Splitten(Cells(1, 1).Value)
End Sub



Function Splitten(strText As String)
Dim i As Integer, strNeuer As String
strNeuer = Left$(strText, 1)
For i = 2 To Len(strText)
If UCase(Mid$(strText, i, 1)) = Mid$(strText, i, 1) Then
If Not IsNumeric(Right$(strNeuer, 1)) And Not IsNumeric(Mid$(strText, i - 1, 1)) Then
strNeuer = strNeuer & " "
End If
End If
strNeuer = strNeuer & Mid$(strText, i, 1)
Next
Splitten = strNeuer
End Function


Grüße Gerd

Anzeige
AW: @GerdL
26.08.2008 14:17:58
Peter
Hallo Gerd,
auch du musst das 'ß' berücksichtigen, das seltsamerweise als Großbuchstabe erkannt wird:
If UCase(Mid$(strText, iIndex, 1)) = Mid$(strText, iIndex, 1) And _
UCase(Mid$(strText, iIndex, 1)) "ß" Then
Gruß Peter
AW: @Peter Feustel
26.08.2008 14:54:00
Gerd
Hallo Peter,
hast Recht!
Deutsche Sprache -- schwere Sprache :-)
Gruß Gerd
AW: Straßennamen trennen
26.08.2008 12:41:00
mpb
Hallo Michael,
Text steht in A1, die 7 zeigt die Stelle an, an der getrennt werden soll:
=LINKS(A1;VERGLEICH(WAHR;(ISTZAHL((TEIL(A1;SPALTE(1:1);1))*1));0)-1)
=RECHTS(A1;LÄNGE(A1)-VERGLEICH(WAHR;(ISTZAHL((TEIL(A1;SPALTE(1:1);1))*1));0)+1)
liefern VierländerDamm bzw. 78A.
Formeln als Matrixformeln eingeben.
Gruß
Martin
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige