Thema Datum  Von Nutzer Rating
Antwort
12.04.2017 12:57:29 Britta C.
Solved
Blau variablen Zellinhalt in einzelne Zellen trennen
12.04.2017 16:34:51 Gast57990
NotSolved
12.04.2017 16:35:37 Gast33623
NotSolved
13.04.2017 07:55:49 Gast37870
NotSolved

Ansicht des Beitrags:
Von:
Gast57990
Datum:
12.04.2017 16:34:51
Views:
575
Rating: Antwort:
  Ja
Thema:
variablen Zellinhalt in einzelne Zellen trennen

Moin! Also so einfach ist das nicht. Excel kann zB nicht erkennen, ob ein Name Vor- oder Nachname ist. Zudem kann man ncht alle Möglichkeiten abfangen, da unbekannt. Hier mal eine Variante die aber nur auf deine Beispiele zugeschnitten ist. Sollte was anderes vorkommen, wird es evtl. nicht klappen. Einfach mal probieren. VG

 

Sub namen_splitten()
Dim text As String
Dim ergebnis(6)
Dim zeile As Long
Dim anzahl As Long

anzahl = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row

For zeile = 1 To anzahl

    For i = 1 To 6
        ergebnis(i) = ""
    Next i
text = Trim(Cells(zeile, 1))
text = Replace(text, ".", ". ")
text = Replace(text, Chr(160), " ")
text = Trim(Replace(text, "  ", " "))

If Left(text, 4) = "Frau" Then
    ergebnis(1) = "Frau"
    text = Trim(Right(text, Len(text) - 4))
End If
If Left(text, 4) = "Herr" Then
    ergebnis(1) = "Herr"
    text = Trim(Right(text, Len(text) - 4))
End If

If Left(text, 3) = "Dr." Then
    ergebnis(2) = "Dr."
    ergebnis(3) = "Dr."
    text = Trim(Right(text, Len(text) - 3))
End If

If Left(text, 5) = "Prof." Then
    ergebnis(2) = "Prof."
    ergebnis(3) = "Prof."
    text = Trim(Right(text, Len(text) - 5))
End If

If Left(text, 3) = "Dr." Then text = Trim(Right(text, Len(text) - 3))
If Left(text, 5) = "Prof." Then text = Trim(Right(text, Len(text) - 5))

If Left(text, 1) = "-" Then
    ergebnis(2) = ergebnis(2) & " " & Split(text, " ")(0)
    text = Trim(Replace(text, Split(text, " ")(0), "", , 1))
End If

If Right(text, 1) = "-" Or Right(text, 1) = ")" Then
    If Right(text, 1) = "-" Then
        ergebnis(6) = Split(text, "-")(UBound(Split(text, "-")))
        text = Trim(Replace(text, "-" & ergebnis(6) & "-", ""))
    End If
    
    If Right(text, 1) = ")" Then
        ergebnis(6) = Replace(Split(text, "(")(UBound(Split(text, "("))), ")", "")
        text = Trim(Replace(text, "(" & ergebnis(6) & ")", ""))
    End If
    
End If


ergebnis(4) = Split(text, " ")(0)
If UBound(Split(text, " ")) > 0 Then ergebnis(5) = Split(text, " ")(1)


For i = 1 To 6
    ActiveSheet.Cells(zeile, 5 + i) = ergebnis(i)
Next


Next zeile
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
12.04.2017 12:57:29 Britta C.
Solved
Blau variablen Zellinhalt in einzelne Zellen trennen
12.04.2017 16:34:51 Gast57990
NotSolved
12.04.2017 16:35:37 Gast33623
NotSolved
13.04.2017 07:55:49 Gast37870
NotSolved