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

Forumthread: In Excel eine Regel in Outlook erstellen

In Excel eine Regel in Outlook erstellen
18.05.2022 10:20:58
bikerHH75
Guten Morgen,
ich bin gerade dabei in Excel eine Möglichkeit zu finden, über ein Formular Button eine Regel in Outlook zu erstellen.
Die Situation zum Verständnis:
Ich bearbeite aus Excel meine Projekte.
Wenn ich ein neues Projekt starte, so möchte ich in Outlook ein neuen Ordner und eine Regel erstellen, dass wenn zu diesem Projekt eine E-Mail reinkommt, diese automatisch in den dafür passenden Ordner verschoben wird und ich eine Benachrichtigung dazu erhalte.
Bisher erstelle ich dieses immer manuell.
Also Ordner im Posteingang erstellen und danach eine Regel mit folgenden Punkten:

Nach Erhalt einer Nachricht
mit ProjektNr im Betreff
im Benachrichtigungsfenster für neue Elemente ProjektNr - Kundenname anzeigen
und diese in den Ordner ProjektNr verschieben
Diese Regel soll immer aktiv sein.
Den Ordner erstellen bekomme ich schon hin. Siehe Code:

Private Sub CmdOutlookAdd_Click()
' OUTLOOK Ordner erstellen
Dim MyOLApp As Outlook.Application
Dim myNameSpace As Outlook.Namespace
Dim mynewfolder As Object
Dim myFolder As Object
Dim ProjektNr As String, Kundenname As String, AddOrdner As String
'Diese 3 Variablen einzeln deklariert, um die Werte zur weiteren Verarbeitung fix zu haben
ProjektNr  = Range("c2")
Kundenname = Range("c1")
AddOrdner = (ProjektNr & " - " & Kundenname)
Set MyOLApp = CreateObject("Outlook.Application")
Set myNameSpace = MyOLApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.Folders("xxx@xxx.de").Folders("Posteingang").Folders("_Projekte")
Set mynewfolder = myFolder.Folders.Add(AddOrdner)
End Sub
Jetzt möchte ich halt noch die besagte Regel erstellen und bin dabei auf diesen Code von folgender Seite gestoßen:
https://docs.microsoft.com/de-de/office/vba/outlook/how-to/rules/create-a-rule-to-move-specific-e-mails-to-a-folder
Auf diese wollte ich aufbauen, bekomme aber eine Fehlermeldung zur Zeile:

Set oInbox = Application.Session.GetDefaultFolder(olFolderInbox) 
Fehlermeldung:

Laufzeitfehler '438':
Objekt unterstützt diese Eigenschaft oder Methode nicht
Auf der Suche nach einer Lösung zu dieser Situation habe ich unteranderen gelesen, dass eventuell ein Add-Ins die Ursache sein könnte. Dort habe ich aber keine Einträge im Dropdown "Add-Inn" .
Jemand sonst noch eine Idee, woran es liegen könnte? Oder vielleicht ein anderen Code, den ich verwenden könnte?
Ich habe diesbezüglich nicht viel dazu gefunden, was mir weiterhelfen könnte. Darum melde ich mich jetzt hier mit mein Problem.
Zusätzliche Frage: Wenn ich es mit Eurer Hilfe hinbekomme und später den Ordner per VBA verschiebe, muss ich dann auch die Regel neu schreiben?
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: In Excel eine Regel in Outlook erstellen
18.05.2022 12:49:51
Tobias
Hallo biker,
da du dich ja in Excel befindest bedeutet Application für deinen Code dein Excel und nicht Outlook. Ich denke da liegt das Problem.

Set MyOLApp = CreateObject("Outlook.Application")
dürfte danach den entsprechenden Code bezogen auf MyOLApp ermöglichen:

Set oInbox = MyOLApp.Session.GetDefaultFolder(olFolderInbox) 
Schöne Grüße
Tobias
Anzeige
AW: In Excel eine Regel in Outlook erstellen
18.05.2022 15:01:06
bikerHH75
Moin Tobias,
vielen Dank für Dein Hinweis. Der hat geholfen!
Ich habe den Code soweit funktionierend angepasst.

Private Sub CmdOutlookOrdner_Click()
Dim MyOLApp As Outlook.Application
Dim myNameSpace As Outlook.Namespace
Dim mynewfolder As Object
Dim myFolder As Object
Dim ProjektNr As String, Kundenname As String, AddOrdner As String
Dim colRules As Outlook.Rules
Dim oRule As Outlook.Rule
Dim colRuleActions As Outlook.RuleActions
Dim oMoveRuleAction As Outlook.MoveOrCopyRuleAction
Dim oConditionsSubject As Outlook.TextRuleCondition
Dim oInbox As Outlook.Folder
Dim oMoveTarget As Outlook.Folder
'Diese 3 Variablen einzeln deklariert, um die Werte zur weiteren Verarbeitung fix zu haben
ProjektNr = Range("c2")
Kundenname = Range("c1")
AddOrdner = (ProjektNr & " - " & Kundenname)
Set MyOLApp = CreateObject("Outlook.Application")
Set myNameSpace = MyOLApp.GetNamespace("MAPI")
Set myFolder = myNameSpace.Folders("xxx@xxx.de").Folders("Posteingang").Folders("_Projekte")
Set mynewfolder = myFolder.Folders.Add(AddOrdner)
'Specify target folder for rule move action
Set oInbox = MyOLApp.Session.GetDefaultFolder(olFolderInbox)
'Assume that target folder already exists
Set oMoveTarget = oInbox.Folders("_Projekte").Folders(AddOrdner)
'Get Rules from Session.DefaultStore object
Set colRules = MyOLApp.Session.DefaultStore.GetRules()
'Create the rule by adding a Receive Rule to Rules collection
Set oRule = colRules.Create(AddOrdner, olRuleReceive) 'Namen der Regel vergeben
'Wenn Regel zutrifft dann in Ordner verschieben
Set oMoveRuleAction = oRule.Actions.MoveToFolder
With oMoveRuleAction
.Enabled = True
.Folder = oMoveTarget
End With
Set oConditionsSubject = _
oRule.Conditions.Subject
With oConditionsSubject
.Enabled = True
.Text = Array(ProjektNr)
End With
'Update the server and display progress dialog
colRules.Save
End Sub
Soweit so gut!
Jetzt fehlt mir hier nur noch eine Aktion und die bekomme ich irgendwie nicht hin.
Ich möchte noch eine Benachrichtigung auf dem Desktop erhalten, dass eine E-Mail für diese Regel gekommen ist.
Wie bewerkställige ich dieses noch?
Anzeige
AW: In Excel eine Regel in Outlook erstellen
19.05.2022 09:38:54
Tobias
Hallo Biker,
bei Outlook bin ich leider komplett raus, allerdings würde ich vermuten du musst eine weitere Rule mit der Aktion "DesktopAlert" mit anfügen. Oder diese ebenfalls auf enabled setzen im Stil von:

    Set oMoveRuleAction = oRule.Actions.DesktopAlert
With oMoveRuleAction
.Enabled = True
'keine Ahnung ob weitere Angaben nötig sind
End With
Ansonsten in die Richtung mal weitergooglen
Schöne Grüße
Tobias
Anzeige
AW: In Excel eine Regel in Outlook erstellen
19.05.2022 11:27:48
bikerHH75
Moin Tobias,
den Ansatz hatte ich auch schon, aber hier erhalte ich nur eine kurze Nachricht, die bei der Windowsuhr aufpoped. (schreibt man das so? ;-) )
Diese verschwindet bei mir automatisch nach wenigen Sekunden.
Sollte ich aber mal nicht am Platz sein, ist das Popup weg und ich bemerke es erst später, wenn ich in Outlook schaue und das ist für meine Zwecke doof.
ich habe aber nach weiteren und intensiven studieren des Links(siehe erste Nachricht) doch dann das richtige gefunden und zusammengebastelt.
Hier der Zusätzliche Code, für das Anzeigen eines Benachrichtigungsfensters. :-)

...
Dim oRuleActionNewItemAlert As Outlook.NewItemAlertRuleAction
'Sende eine Bildschirmnachricht
Set oRuleActionNewItemAlert = oRule.Actions.NewItemAlert
With oRuleActionNewItemAlert
.Enabled = True
.Text = AddOrdner 'ProjektNr - Kundenname
End With
Vielen Dank für die Unterstützung.
Ich wünsche allen die das hier lesen einen schönen Tag.
VG
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel und Outlook: Automatisierte Regeln erstellen


Schritt-für-Schritt-Anleitung

Um eine Regel in Outlook über ein Excel-Formular zu erstellen, kannst Du die folgenden Schritte befolgen:

  1. Outlook Anwendung initialisieren: Du musst die Outlook-Anwendung in Deinem VBA-Projekt initialisieren.

    Dim MyOLApp As Outlook.Application
    Set MyOLApp = CreateObject("Outlook.Application")
  2. Ordner erstellen: Nutze den folgenden Code, um einen neuen Ordner in Outlook zu erstellen. Du musst die Variablen ProjektNr und Kundenname aus Excel beziehen.

    Dim myNameSpace As Outlook.Namespace
    Dim myFolder As Object
    Dim mynewfolder As Object
    
    Set myNameSpace = MyOLApp.GetNamespace("MAPI")
    Set myFolder = myNameSpace.Folders("xxx@xxx.de").Folders("Posteingang").Folders("_Projekte")
    Set mynewfolder = myFolder.Folders.Add(AddOrdner)
  3. Regel erstellen: Füge den folgenden Code hinzu, um eine E-Mail-Regel zu erstellen, die E-Mails basierend auf dem Betreff verschiebt.

    Dim colRules As Outlook.Rules
    Dim oRule As Outlook.Rule
    Dim oMoveRuleAction As Outlook.MoveOrCopyRuleAction
    Dim oConditionsSubject As Outlook.TextRuleCondition
    
    Set colRules = MyOLApp.Session.DefaultStore.GetRules()
    Set oRule = colRules.Create(AddOrdner, olRuleReceive)
    Set oMoveRuleAction = oRule.Actions.MoveToFolder
    With oMoveRuleAction
       .Enabled = True
       .Folder = oMoveTarget
    End With
  4. Benachrichtigung hinzufügen: Verwende den folgenden Code, um eine Desktop-Benachrichtigung zu aktivieren.

    Dim oRuleActionNewItemAlert As Outlook.NewItemAlertRuleAction
    Set oRuleActionNewItemAlert = oRule.Actions.NewItemAlert
    With oRuleActionNewItemAlert
       .Enabled = True
       .Text = AddOrdner 'ProjektNr - Kundenname
    End With
  5. Regeln speichern: Vergiss nicht, die Regeln zu speichern.

    colRules.Save

Häufige Fehler und Lösungen

  • Laufzeitfehler '438': Dieser Fehler tritt auf, wenn Du versuchst, auf eine Eigenschaft oder Methode zuzugreifen, die nicht unterstützt wird. Stelle sicher, dass Du die Outlook-Anwendung korrekt referenzierst:

    Set oInbox = MyOLApp.Session.GetDefaultFolder(olFolderInbox)
  • Benachrichtigung verschwindet schnell: Wenn die Desktop-Benachrichtigung nur kurz angezeigt wird, kannst Du die Dauer anpassen oder zusätzlich eine E-Mail-Benachrichtigung einrichten.


Alternative Methoden

Wenn Du keine VBA-Lösung verwenden möchtest, kannst Du auch direkt in Outlook Regeln erstellen, indem Du die folgenden Schritte befolgst:

  1. Gehe zu "Regeln und Benachrichtigungen" in Outlook.
  2. Klicke auf "Neue Regel".
  3. Wähle die gewünschten Bedingungen und Aktionen aus, um Deine E-Mails zu organisieren.

Praktische Beispiele

  • Geburtstagsgrüße automatisch versenden: Du kannst eine Regel erstellen, die E-Mails mit einem bestimmten Betreff (z.B. "Geburtstag") in einen speziellen Ordner verschiebt und gleichzeitig eine Benachrichtigung sendet.

  • Projekte organisieren: Verwende die oben genannten Schritte, um für jedes neue Projekt in Excel automatisch einen entsprechenden Ordner und eine Regel in Outlook zu erstellen.


Tipps für Profis

  • Verwende Application.DisplayAlerts = False, um Pop-up-Benachrichtigungen während der Ausführung Deines VBA-Codes zu unterdrücken.
  • Teste Deine VBA-Skripte in einer sicheren Umgebung, um unerwartete Ergebnisse zu vermeiden.
  • Dokumentiere Deine Codes gründlich, um die Wartung und Aktualisierung zu erleichtern.

FAQ: Häufige Fragen

1. Kann ich mehrere Regeln gleichzeitig erstellen?
Ja, Du kannst mehrere Regeln in einer einzigen VBA-Prozedur erstellen, indem Du den entsprechenden Code für jede Regel hinzufügst.

2. Was passiert, wenn ich den Ordner verschiebe?
Wenn Du einen Ordner verschiebst, musst Du die Regel nicht neu schreiben, solange der neue Pfad korrekt in Deinem VBA-Code angegeben ist.

3. Wie kann ich die Bedingungen für die Regel anpassen?
Du kannst die Bedingungen in der Regel anpassen, indem Du die Eigenschaften von oConditionsSubject bearbeitest, beispielsweise:

With oConditionsSubject
    .Enabled = True
    .Text = Array("Neuer Betreff")
End With

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