Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

51 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige