Text mit mehreren Leerzeichen von Zahl trennen

  • Excel

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von peterfido.

    Text mit mehreren Leerzeichen von Zahl trennen

    Guten Tag

    ich komme nicht mehr weiter und hoffe jemand kann mir weiterhelfen oder einen Tip in die richtige Richtung geben.

    Ich müsste den Inhalt einer Zelle bestehend aus Zahlen und Texten aufteilen. Die erste Zahl soll jeweils in die Spalte B und und der Text mit weiteren Zahlen in Spalte C kopiert werden. Die Ermittlung der ersten Zahl konnte ich lösen. Der Code dazu steht weiter unten. Der Inhalt der Zelle, die ich trennen muss sieht etwa so aus: "55.34 xxxx yyyy 745" oder "155322 xxxx yyyy zz12z". Die Versuche mit Text in Spalte haben bis anhin nichts gebracht, da die Trennung nur nach der ersten Zahl und nicht nach jedem Wort erfolgen soll. Die Trennzeichen zwischen den Teilen sind nur Leerzeichen.

    Sub Zahl_Text_trennen()

    Dim Zelle As Range
    Dim s, Counter, iZeile1 As Integer

    ' Tabellenende ermitteln

    Range("A1").Select
    iZeile1 = Selection.End(xlDown).Row

    ' Zahl in Zelle Spalte B schreiben

    For Each Zelle In Worksheets("Tabelle1").Range("A1:A" & iZeile1)
    s = Mid(Zelle.Value, 1, InStr(1, Zelle.Value, " "))

    Counter = Counter + 1

    If s <> "" And IsNumeric(s) Then
    s = s * 1
    Cells(Counter, Zelle.Column + 1).Select
    Selection.NumberFormat = "0.00"
    Cells(Counter, Zelle.Column + 1).Value = s
    End If
    Next

    End Sub

    Vielen Dank im Voraus für jegliche Tips.

    Mit freundlichen Grüssen, Urs Schmid
    Excel Funktionen:
    Zelle B1
    =LINKS(A1;FINDEN(" ";A1)-1)

    Zelle C1:
    =RECHTS(A1;LÄNGE(A1)- FINDEN(" ";A1))

    Oder in Visual Basic
    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Sub Zahl_Text_trennen()
    2. Dim Position As Integer
    3. Dim Reihe As Integer
    4. Dim Zeilenanzahl As Integer
    5. Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 'Sheet anpassen!
    6. For Reihe = 1 To Zeilenanzahl
    7. Position = InStr(1, Cells(Reihe, 1), " ", vbTextCompare) 'Evtl. Sheet vor Cells angeben
    8. If Position > 0 Then
    9. Cells(Reihe, 2) = Left$(Cells(Reihe, 1), Position - 1) 'Evtl. Sheet vor Cells angeben
    10. Cells(Reihe, 3) = Mid$(Cells(Reihe, 1), Position + 1) 'Evtl. Sheet vor Cells angeben
    11. End If
    12. Next Reihe
    13. End Sub


    Zu beachten ist, dass Excel evtl die Zahlen anpasst (Dezimalpunkt wird Komma, führende Nullen werden nicht dargestellt)
    Gruß
    Peterfido

    Keine Unterstützung per PN!

    Visual Basic-Quellcode

    1. Text = "55.34 xxxx yyyy 745" 'der aufzutrennende Text
    2. Felder = Split(Text) 'splitte den Text an den Blanks in ein Array
    3. For i = 0 To UBound(Felder) 'durchlaufe das Array
    4. Cells(Zeile, i+1).Formula = Felder(i) 'schreibe die Feldelemente ins Tabellenblatt
    5. Next
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --