Leerzeilen in Outlook per VBA löschen

Home-›Foren-›Outlook-›Outlook VBA-›Leerzeilen in Outlook per VBA löschen

12 Antworten anzeigen - 1 bis 12 (von insgesamt 12)
  • Autor
    Beitrag
  • #157887
    MichaelBauer
    Participant

      Dies müßte alles entfernen, was mehr als einen Zeilenumbruch hintereinander hat. Dabei werden zwei Zeilenumbrüche durch einen ersetzt:

      While Instr(Text, vbcrlf & vbcrlf)>0
      Text = Replace(Text, vbcrlf & vbcrlf, vbcrlf)
      Wend

      Ggf müßtest Du das erweitern, wenn es auch Zeilenumbrüche gibt, die nur aus vbLF bestehen.

      Viele Grüße
      Michael Bauer

      #157956
      Unbekannt
      Participant

        Hi,

        erstmal Danke für den Code, leider bekomme ich den nicht richtig eingebunden, sprich es funktioniert nicht.
        Wo muss der denn genau rein und muss da nicht sub … und end sub davor bzw. dahinter stehen?

        Ggf müßtest Du das erweitern, wenn es auch Zeilenumbrüche gibt, die nur aus vbLF bestehen.

        Dies versteh ich um ehrlich zu sein auch nicht :S.

        Hoffe, dass du mir da noch ein bischen helfen kannst.

        MfG

        frager

        #157984
        MichaelBauer
        Participant

          Richtig, außenherum gehört dieses:

          Public Sub IrgendeinName()

          End Sub

          Den Code kannst Du ins Modul \”DieseOutlookSitzung\” schreiben. Zum aufruf könntest du Dir über Rechtsklick auf eine Symbolleiste/Anpassen/Befehle/Makros den Makronamen auf die Symbolleiste ziehen.

          Um auch vbLF zu ersetzen, kopiere die gezeigte While-wend Schleife einfach und tausche vbCRLF durch vbLF.

          Viele Grüße
          Michael Bauer

          #157996
          Unbekannt
          Participant

            Hab alles richtig gemacht, hab sogar ein anderes Makro über diesen Button laufen welches auch einwandfrei funktioniert.
            Was kann ich denn nun noch machen?

            Hoffe du hast noch eine Idee?

            Ich poste mal hier den gesamten Code, den ich Jetzt im Modul \”DieseOutlookSitzung\” stehen habe. Vielleicht findest du so meinen Fehler.

            Sub AnwortMail()
            On Error Resume Next

            \’Benötigte Variablen
            Dim myOlSelection As Outlook.Selection
            Dim myOlMailItem As Outlook.MailItem
            Dim NewMail As MailItem
            Set myOlSelection = Application.ActiveExplorer.Selection

            \’Erzeugen einer neuen Email als Antwort
            For Each myOlMailItem In myOlSelection

            Set NewMail = myOlMailItem.Reply
            If NewMail.BodyFormat = olFormatHTML Then
            NewMail.BodyFormat = olFormatPlain
            Else
            End If
            NewMail.Display

            While InStr(Text, vbCrLf & vbCrLf) > 0
            Text = Replace(Text, vbCrLf & vbCrLf, vbCrLf)
            Wend

            Next
            End Sub

            Public Sub IrgendeinName()

            While InStr(Text, vbCrLf & vbCrLf) > 0
            Text = Replace(Text, vbCrLf & vbCrLf, vbCrLf)
            Wend

            End Sub

            Der obige Code wandelt eine Html Mail automatisch in eine \”nur Text\” E-Mail um.
            Hoffe sehr, dass du da was machen kannst.

            MfG

            frager

            #158005
            Unbekannt
            Participant

              wie kann ich also beide codes, sprich: deinen, der die Leerzeilen löscht und meinen, der E-Mails ins \”nur Text\” format umwandet zusammenfassen, sodass ich beide über einen Button in der Symbolleiste ausführen kann.

              Geht das überhaupt?

              MfG

              frager

              #158013
              MichaelBauer
              Participant

                Deswegen hatte ich das Beispiel ohne Sub/End Sub formuliert; um die Schleife in den bestehenden Code einzubauen, brauchst Du das ja nicht.

                Schau Dir bitte die Replace Funktion an: \”Text\” war nur ein Beispiel. Dort muss der zu ersetzende Text übergeben werden, in diesem Fall also NewMail.Body.

                Viele Grüße
                Michael Bauer

                #158028
                Unbekannt
                Participant

                  Kann die leider nicht zusammenfügen. Dafür müsste ich wenigstens Basiswissen haben.
                  Muss da leider passen :S.

                  MfG

                  frager

                  #158061
                  Unbekannt
                  Participant

                    Hab jetzt doch den Code einbinden können. Habe nur festgestellt, dass er wahrlos, wenn nur eine Leerzeile da ist, auch diese löscht, sprich:

                    TEXT TEXT TEXT
                    (Leerzeile)
                    TEXT TEXT TEXT

                    wird zu:

                    TEXT TEXT TEXT
                    TEXT TEXT TEXT

                    Das ist allerdings nicht gewollt.
                    Andererseits lässt er gelegentlich auch doppelte Leerzeilen stehen, sprich:

                    TEXT TEXT TEXT
                    Leerzeile
                    Leerzeile
                    TEXT TEXT TEXT

                    Das sollte auch nicht passieren.

                    Weisst du woran das liegen könnte und wie man es korrigieren könnte?

                    #158179
                    MichaelBauer
                    Participant

                      Zu 1: Vielleicht irrst Du Dich. In HTML sind die Abstände zwischen zwei Absätzen manchmal sehr groß; das sieht dann nur aus wie ein doppelter Zeilenumbruch, ist aber keiner.

                      Zu 2: Wie sieht der Code denn jetzt aus?

                      Viele Grüße
                      Michael Bauer

                      #158396
                      Unbekannt
                      Participant

                        ich irre mich in dem Fall nicht.

                        Manchmal wird aus:

                        From: XXX [mailto:xxx@xxx.de]
                        Sent: Friday, March 14, 2008 11:44 AM
                        To: \’xxx\’
                        Subject: xxx

                        Hi,

                        blabla bla

                        Daraus wird dann einfach:

                        From: XXX [mailto:xxx@xxx.de]
                        Sent: Friday, March 14, 2008 11:44 AM
                        To: \’xxx\’
                        Subject: xxx
                        Hi,
                        blabla bla

                        Dies war nicht der Sinn.

                        Aus:

                        From: XXX [mailto:xxx@xxx.de]
                        Sent: Friday, March 14, 2008 11:44 AM
                        To: \’xxx\’
                        Subject: xxx

                        Hi,

                        blabla bla

                        Soll:

                        From: XXX [mailto:xxx@xxx.de]
                        Sent: Friday, March 14, 2008 11:44 AM
                        To: \’xxx\’
                        Subject: xxx

                        Hi,

                        blabla bla

                        Hier der momentane Code:

                        Sub AnwortMail()
                        On Error Resume Next

                        \’Benötigte Variablen
                        Dim myOlSelection As Outlook.Selection
                        Dim myOlMailItem As Outlook.MailItem
                        Dim NewMail As MailItem
                        Set myOlSelection = Application.ActiveExplorer.Selection

                        \’Erzeugen einer neuen Email als Antwort
                        For Each myOlMailItem In myOlSelection

                        Set NewMail = myOlMailItem.Reply
                        If NewMail.BodyFormat = olFormatHTML Then
                        NewMail.BodyFormat = olFormatPlain
                        Else
                        End If
                        While InStr(NewMail.Body, vbCrLf & vbCrLf) > 2
                        NewMail.Body = Replace(NewMail.Body, vbCrLf & vbCrLf, vbCrLf)
                        Wend
                        NewMail.Display

                        Next
                        End Sub

                        Hoffe dir fällt hier noch was ein :). Aber schonmal vorab vielen Dank für die bisherige Hilfe.
                        No. 1 :thumbup:

                        MfG

                        frager

                        #185705
                        JoeHan
                        Participant

                          Hallo!

                          Gibt es hier was Neues? Ich kenne mich allerdings überhaupt nicht in VBA aus und bräuchte eine Dummy-Anleitung.

                          Das Problem mit den zusätzlich erzeugten Leerzeilen in HTML Emails wird auch hier diskutiert: https://www.mailhilfe.de/frage37279.html

                          Wer weiß eine (praktikable) Lösung für Outlook 2010? 1.) Bei Versenden von HTML Emails => 1 Leerzeile wird zu 3! 1 Zeilenumbruch wird zu 1 Leerzeile! 2.) Bei Email Versand wird langer Link umgebrochen und zerstört.

                          #185707
                          JoeHan
                          Participant

                            Da der Autor ohne Registrierung gepostet hat, wird er vermutlich keine Benachrichtigung bei neuen Posts bekommen? Blöd.

                            Wer weiß eine (praktikable) Lösung für Outlook 2010? 1.) Bei Versenden von HTML Emails => 1 Leerzeile wird zu 3! 1 Zeilenumbruch wird zu 1 Leerzeile! 2.) Bei Email Versand wird langer Link umgebrochen und zerstört.

                          12 Antworten anzeigen - 1 bis 12 (von insgesamt 12)

                          Hat Ihnen der Beitrag gefallen?

                          1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Bewertung vorhanden)
                          Loading...