Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Regel in Outlook: Im Betreff Satzzeichen löschen

Regel in Outlook: Im Betreff Satzzeichen löschen
19.08.2015 09:41:59
Matthias
Hallo zusammen
Ich würde gerne eine Regel in mein Outlook 2010 erstellen, die beim Eingang einer Email alle "." und "'" im Betreff löscht.
IST: Hans Meier, Police 32.2221.224'2
SOLL: Hans Meier, Police 3222212242
Wäre super, wenn da Jemand einen Tipp hätte :)
Schönen Tag wünsch ich euch
Matthias

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Im Betreff Satzzeichen löschen
19.08.2015 10:57:26
mumpel
Hallo!
Hier mal ein Beispiel welches alle Sonderzeichen der gewählten Email durch einen Unterstrich ersetzt.
Sub ObjSavAs()

Dim olMailItem       As Outlook.MailItem
Dim lngVarSZ         As Long
Dim strTxtSZ         As String

Const strReplaceSZ   As String = "_.;:_#äüö+?)=%$&(/\"
 
 
 Select Case True
  Case TypeOf Application.ActiveWindow Is Outlook.Inspector
    Set olMailItem = Application.ActiveInspector.CurrentItem
  Case Else
    With Application.ActiveExplorer.Selection
      If .Count Then
        Set olMailItem = .Item(1)
      End If
    End With
    If olMailItem Is Nothing Then
      Exit Sub
    End If
  End Select
  
 With olMailItem
      strTxtSZ = .Subject
         For lngVarSZ = 1 To Len(strReplaceSZ)
             strTxtSZ = Replace(strTxtSZ, Mid(strReplaceSZ, lngVarSZ, 1), "_")
         Next lngVarSZ
      .Subject = strTxtSZ
      .Save
End With

VBA/HTML - CodeConverter für Office-Foren, AddIn für Office 2002-2013 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:mumpel

Code erstellt und getestet in Office 15 - mit VBAHTML 12.6.0

Gruß, René

Anzeige
AW: Im Betreff Satzzeichen löschen
19.08.2015 13:05:53
Matthias
Hi René
Vielen Dank für deinen Input. Ich kriege es leider trotzdem nicht hin :(
Sub Anlage(oMail As MailItem)
'Muss so sein weil das Makro sonst nicht bei den Regeln als Skript aufgeführt wird
Dim olMailItem       As Outlook.MailItem
Dim lngVarSZ         As Long
Dim strTxtSZ         As String
Const strReplaceSZ   As String = ".'"
Select Case True
Case TypeOf Application.ActiveWindow Is Outlook.Inspector
Set olMailItem = Application.ActiveInspector.CurrentItem
Case Else
With Application.ActiveExplorer.Selection
If .Count Then
Set olMailItem = .Item(1)
End If
End With
If olMailItem Is Nothing Then
Exit Sub
End If
End Select
With olMailItem
strTxtSZ = .Subject
For lngVarSZ = 1 To Len(strReplaceSZ)
'hier eingeben durch was ersetzen
strTxtSZ = Replace(strTxtSZ, Mid(strReplaceSZ, lngVarSZ, 1), "")
Next lngVarSZ
.Subject = strTxtSZ
.Save
End With
End Sub

Anzeige
geht doch?
19.08.2015 15:53:26
Michael
Hi Matthias,
da (" 'hier eingeben durch was ersetzen") muß nichts rein, denn Deine Zeichen stehen oben bereits in der Konstante.
Ohne das Outlook-Drumrum (habe keine OL) sieht die Logik so aus ...
Sub StringSäubern()
Dim lngVarSZ         As Long
Dim strTxtSZ         As String
Dim strAusgabe       As String
Const strReplaceSZ   As String = ".'"
strTxtSZ = "Hans Meier, Police 32.2221.224'2"
Debug.Print strTxtSZ
For lngVarSZ = 1 To Len(strReplaceSZ)
strTxtSZ = Replace(strTxtSZ, Mid(strReplaceSZ, lngVarSZ, 1), "")
Next lngVarSZ
Debug.Print strTxtSZ
' *ODER* so:
strTxtSZ = "Hans Meier, Police 32.2221.224'2"
Debug.Print strTxtSZ
strTxtSZ = Replace(Replace(strTxtSZ, ".", ""), "'", "")
Debug.Print strTxtSZ
End Sub

... und wenn Du die debug.print - Ausgabe im Direktfenster (VB-Editor: Strg+G oder unter Ansicht) ansiehst,
Hans Meier, Police 32.2221.224'2
Hans Meier, Police 3222212242
Hans Meier, Police 32.2221.224'2
Hans Meier, Police 3222212242

paßt doch alles.
In der For-Schleife wird der Reihe nach ein Replace-Befehl ausgeführt, und zwar mit dem Zeichen, das jeweils an der lngVarSZ-ten Position im strReplaceSZ steht, also für lngVarSZ-ten=1 mit dem ".", für =2 mit dem "'".
Diese Lösung ist sehr allgemein gehalten und funzt immer!
In der unteren Formulierung (nach dem Oder) mußt Du nur strTxtSZ durch .Subject ersetzen...
.Subject = Replace(Replace(.Subject, ".", ""), "'", "")
... falls Dir diese Variante einleuchtender ist.
Gruß,
Michael

Anzeige
AW: geht doch?
19.08.2015 16:47:12
Matthias
Herzlichen Dank Michael für die tollen Erklärungen. Ich habe es jetzt super verstanden. Und es lag am Outlook-Zeugs drumum ... :)

gerne, vielen Dank für die Rückmeldung owT
19.08.2015 20:06:16
Michael

AW: Regel in Outlook: Im Betreff Satzzeichen löschen
20.08.2015 10:53:47
Matthias
Endgültiger Code:
Sub Anlage(MyMail As MailItem)
Dim strID As String
Dim olNS As Outlook.NameSpace
Dim olMail As Outlook.MailItem
Dim lngVarSZ         As Long
Dim strTxtSZ         As String
strID = MyMail.EntryID
Set olNS = Application.GetNamespace("MAPI")
Set olMail = olNS.GetItemFromID(strID)
'die zu ersetzenden Zeichen zwischen "" eingeben
Const strReplaceSZ   As String = ".'"
With olMail
strTxtSZ = .Subject
For lngVarSZ = 1 To Len(strReplaceSZ)
'zwischen "" eingeben, durch was die Zeichen ersetzt werden sollen
strTxtSZ = Replace(strTxtSZ, Mid(strReplaceSZ, lngVarSZ, 1), "")
Next lngVarSZ
.Subject = strTxtSZ
.Save
End With
Set olMail = Nothing
Set olNS = Nothing
End Sub

Suchbegriffe:
Eingehende Email Neue Email Outlook Betreff ändern Titel ändern Skript Regel
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Satzzeichen im Outlook-Betreff entfernen


Schritt-für-Schritt-Anleitung

Um die Satzzeichen im Betreff einer eingehenden E-Mail in Outlook zu entfernen, kannst Du ein VBA-Makro verwenden. Folgendes Vorgehen ist notwendig:

  1. Öffne Outlook und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub Anlage(MyMail As MailItem)
       Dim strID As String
       Dim olNS As Outlook.NameSpace
       Dim olMail As Outlook.MailItem
       Dim lngVarSZ         As Long
       Dim strTxtSZ         As String
       strID = MyMail.EntryID
       Set olNS = Application.GetNamespace("MAPI")
       Set olMail = olNS.GetItemFromID(strID)
       Const strReplaceSZ   As String = ".'"
       With olMail
           strTxtSZ = .Subject
           For lngVarSZ = 1 To Len(strReplaceSZ)
               strTxtSZ = Replace(strTxtSZ, Mid(strReplaceSZ, lngVarSZ, 1), "")
           Next lngVarSZ
           .Subject = strTxtSZ
           .Save
       End With
       Set olMail = Nothing
       Set olNS = Nothing
    End Sub
  4. Schließe den VBA-Editor.

  5. Um die Regel zu erstellen, gehe zu Extras > Regeln und Benachrichtigungen.

  6. Erstelle eine neue Regel, die das Makro anwendet, wenn eine neue E-Mail eintrifft.


Häufige Fehler und Lösungen

  • Fehler: "outlook betreff ändern geht nicht"

    • Stelle sicher, dass das Makro aktiviert ist und Du die richtigen Berechtigungen hast, um VBA-Code auszuführen.
  • Fehler: Regel wird nicht angewendet

    • Überprüfe die Regelbedingungen und stelle sicher, dass das Makro korrekt in der Regel verknüpft ist.
  • Fehler: Satzzeichen werden nicht entfernt

    • Vergewissere Dich, dass die Zeichen in der Konstanten strReplaceSZ korrekt angegeben sind.

Alternative Methoden

Eine alternative Methode zur Entfernung von Satzzeichen im Betreff ist die Verwendung von einfachen Ersetzungen ohne VBA:

  1. Du kannst die Funktion Suchen und Ersetzen in Outlook verwenden, um manuell die Satzzeichen zu entfernen.
  2. Eine weitere Möglichkeit ist das Erstellen einer Regel, die eingehende E-Mails in einen bestimmten Ordner verschiebt, und dann manuell die betreffenden E-Mails zu bearbeiten.

Praktische Beispiele

Hier sind einige Beispiele, wie Du den Betreff einer E-Mail ändern kannst:

  • Beispiel 1: Ursprünglicher Betreff: Hans Meier, Police 32.2221.224'2 Nach dem Ausführen des Makros: Hans Meier, Police 3222212242

  • Beispiel 2: Verwende den Code von Michael, um mehrere Ersetzungen in einem Schritt durchzuführen:

    strTxtSZ = Replace(Replace(strTxtSZ, ".", ""), "'", "")

Tipps für Profis

  • Überlege, die Konstanten dynamisch zu gestalten, um eine flexiblere Handhabung von Zeichen zu ermöglichen.
  • Füge eine Fehlerbehandlung in Dein Makro ein, um unerwartete Probleme zu vermeiden.
  • Teste das Makro zuerst mit einer Test-E-Mail, um sicherzustellen, dass alles wie gewünscht funktioniert.

FAQ: Häufige Fragen

1. Kann ich die Regel auch für bereits empfangene E-Mails anwenden? Ja, Du kannst die Regel manuell auf einen Ordner anwenden, indem Du die E-Mails auswählst und die Regel darauf anwendest.

2. Was mache ich, wenn die Satzzeichen nicht alle entfernt werden? Überprüfe den Code auf weitere Satzzeichen, die in der Konstanten nicht enthalten sind, und füge sie hinzu.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige