VBA Satzausgabe (Iterationen, Strings)

  • Sonstige

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    VBA Satzausgabe (Iterationen, Strings)

    Moin,

    Ich versuche gerade eine Satzausgabe zu programmieren, also der User gibt einen Satz ein und dieser wird danach gekürzt ausgegeben. Wie schaffe ich es jetzt aber, das zum Beispiel Satzeingaben die keinen Punkt am Ende haben oder Satzeingaben mit Sonderzeichen abgefangen werden und eine Fehlermeldung erscheint ?
    Habe es mit dem LikeOperator versucht aber bin leider kläglich gescheitert (bin blutiger VBA Anfänger zu meiner Verteidigung).

    Danke schonmal im Voraus :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „fufu“ ()

    Willkommen im Forum. Leider hast du deinen Beitrag in ein geschütztes Unterforum für die Moderation und Administration gepostet. Ich habe es ausnahmsweise für dich verschoben; bitte achte künftig darauf das richtige Unterforum zu verwenden.

    Ein 2 MB Foto von ca. 15 Zeilen Code zu deiner Frage ist Murks. Ich habe es gelöscht, weil es nur Trafic generiert und für potenzielle Helfer schlecht zu lesen ist. Bitte binde deinen QuellTEXT als solchen in Code-Tags in deinen Beitrag ein.

    Editiert. Verschoben. Freigeschaltet. ~fufu
    Das sollte relativ einfach zu lösen sein, mit der 'Right'-Funktion von Excel:

    Visual Basic-Quellcode

    1. Sub Texterkenner()
    2. Dim text As String, punkt As String
    3. text = "Dieser Satz hat keinen Punkt"
    4. punkt = Right(text, 1)
    5. If punkt <> "." Then
    6. Debug.Print "Der Satz hat keinen Punkt am Ende!"
    7. Else
    8. Debug.Print "Der Satz hat einen Punkt am Ende!"
    9. End If
    10. End Sub


    Für die Sonderzeichen legst Du Dir z.B. eine Collection an und loopst die durch.
    Vielen Dank, dass hat schon einmal sehr geholfen ...
    Mein nächstes Problem hat sich leider direkt aufgetan, nämlich wie ich eine beliebige Eingabe mit Zeilenumbrüche ausgeben kann, ohne vorher zu wissen was eigentlich eingegeben wird...
    bsp
    eingabe= Hallo. Wie geht es dir. Mir gehts gut.
    ausgabe= Hallo.
    Wie geht es dir.
    Mir geht es gut.
    So zum Beispiel. Du musst allerdings alle Sonderzeichen berücksichtigen, nicht nur den Punkt. Dazu müsstest Du eine weitere Schleife einbauen, die das abfragt.

    Visual Basic-Quellcode

    1. Dim textAlt As String, textNeu As String
    2. Dim l As Long, x As Long
    3. textAlt = "Hier den Text zuweisen"
    4. l = Len(textAlt)
    5. For x = 1 To l
    6. If Mid(textAlt, x, 1) <> "." Then
    7. textNeu = textNeu + Mid(textAlt, x, 1)
    8. Else
    9. textNeu = textNeu + Mid(textAlt, x, 1) + vbNewLine
    10. End If
    11. Next

    Razzberry schrieb:

    nämlich wie ich eine beliebige Eingabe mit Zeilenumbrüche ausgeben kann
    Irgendein Kriterium benötigst du, um Zeilenumbrüche zu lokalisieren.
    Nach Punkt:

    VB.NET-Quellcode

    1. ​ausgabe = eingabe.Replace(".",$".{Environment.NewLine}")
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --