Thema Datum  Von Nutzer Rating
Antwort
26.10.2020 13:18:35 Alex
NotSolved
26.10.2020 15:25:14 Gast49932
NotSolved
27.10.2020 08:17:39 Alex
NotSolved
Blau Jeder Satz in eigene Zeile
27.10.2020 10:50:38 TestGast
*****
Solved

Ansicht des Beitrags:
Von:
TestGast
Datum:
27.10.2020 10:50:38
Views:
512
Rating: Antwort:
 Nein
Thema:
Jeder Satz in eigene Zeile

Hallo Alex,

hier mal auf die Schnelle zusammengeschrieben und mit einem Beispieltext getestet.
Der Text wird in der aktuellen Tabelle in der Zelle "A1" erwartet.
Ab Zeile 3 werden dann die einzelnen Texte ausgegeben.

Ist nicht schön, aber funktioniert ganz gut. Die Trennungen können erweitert werden.
Diese werden einzeln am erkannten Satzende überprüft. Verschiedene Längen der
Trennungen spielen keine Rolle. Allerdings werden nur Trennungen mit einen PUNKT
am Ende gefunden.

Vielleicht reicht dir das so. Notfalls kannst du es als Beispiel für Erweiterungen nehmen.

Gruß
Ein TestGast

 

--- Makro ---

 

Option Explicit

Sub SätzeTrennen()
    Dim WS As Worksheet
    
    Dim TrennungErkannt As Boolean
    
    Dim TextKomplett As String
    Dim Zeichen As String
    Dim Trennung As String
    Dim Satz As String
        
    Dim Zeile As Long
    Dim Pos As Long
    Dim PosBeginn As Long
    Dim Idx As Long         'Index der Trennungen
    Dim LTrennung As Long   'Länge der Trennung
    
    Dim Trennungen As Variant
    
    'Aktive Tabelle nutzen
    Set WS = ActiveSheet
    
    'Trennungen in Array
    Trennungen = Array("etc.", "usw.", "ggf.")
    
    'Text aus Zelle A1 der aktiven Tabelle
    TextKomplett = WS.Range("A1")
    
    'Beginn der Ausgabe in Zeile 3
    Zeile = 3
    PosBeginn = 1
    For Pos = 1 To Len(TextKomplett)
        Zeichen = Mid(TextKomplett, Pos, 1)
        
        If Zeichen = "!" Or Zeichen = "?" Then
            WS.Cells(Zeile, 1) = Mid(TextKomplett, PosBeginn, Pos - PosBeginn + 1)
            PosBeginn = Pos + 2
            Zeile = Zeile + 1
        
        ElseIf Zeichen = "." Then
            TrennungErkannt = False
            For Idx = LBound(Trennungen) To UBound(Trennungen)
                Trennung = Trennungen(Idx)
                LTrennung = Len(Trennung)
                Satz = Left(TextKomplett, Pos)
                
                'Prüfung ob die Trennung am Ende des erkannten Satzes steht
                If Right(Satz, LTrennung) = Trennung Then
                    TrennungErkannt = True
                    Exit For
                End If
            Next Idx
            
            'Keine der Trennungen wurde erkannt, Satz ist beendet
            If TrennungErkannt = False Then
                WS.Cells(Zeile, 1) = Mid(TextKomplett, PosBeginn, Pos - PosBeginn + 1)
                PosBeginn = Pos + 2
                Zeile = Zeile + 1
            End If
        End If
    Next Pos
    
    Set WS = Nothing
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
26.10.2020 13:18:35 Alex
NotSolved
26.10.2020 15:25:14 Gast49932
NotSolved
27.10.2020 08:17:39 Alex
NotSolved
Blau Jeder Satz in eigene Zeile
27.10.2020 10:50:38 TestGast
*****
Solved