Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1896to1900
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

[Outlook] vba-Code für shared-Mailbox

[Outlook] vba-Code für shared-Mailbox
09.09.2022 17:54:47
Patrick
Hallo ihr lieben,
dank eurer Hilfe habe ich mein Outlook-Problem lösen können:
Beim Empfang einer E-Mail soll, wenn bestimmte Texte in der empfangenen E-Mail stehen, eine Fälligkeit berechnet und der Betreff geändert werden.
Den Code habe ich für andere, die Hilfe suchen, hier noch einmal gepostet. Funktioniert einwandfrei....
ABER
Wie schaffe ich es nun, dass der Code mein geteilten Postfach überwacht und die Mails ändert (und nicht in meinem Hauptaccount)?

Private Sub Application_NewMailEx(ByVal EntryIDCollection As String)
'Debug.Print
Dim objEMail, objEMailCopy As Object
Dim intInitial As Integer
Dim intFinal As Integer
Dim strEntryId As String
Dim intLength As Integer
Dim datVersanddatum, datFaelligkeit As Date
intInitial = 1
intLength = Len(EntryIDCollection)
intFinal = InStr(intInitial, EntryIDCollection, ",")
strEntryId = Strings.Mid(EntryIDCollection, intInitial, (intLength - intInitial) + 1)
Set objEMail = Application.Session.GetItemFromID(strEntryId)
If (InStr(objEMail.Subject, "Anzeigenschaltung ") > 0) Then
If (InStr(objEMail.Body, "Jobbörse: StepStone Ultimate") > 0) Then
Set objEMailCopy = objEMail.Copy
posDatum = InStr(objEMailCopy.Body, "Veröffentlichungsdatum: ")
datVersanddatum = CDate(Mid(objEMailCopy.Body, posDatum + 24, 10))
If Weekday(datVersanddatum) >= 5 Then
datFaelligkeit = datVersanddatum + 40 + (8 - Weekday(datVersanddatum))          ' wenn Wochenende, dann kommenden Montag setzen und 40 Tage addieren
Else
datFaelligkeit = datVersanddatum + 40
End If
If Weekday(datFaelligkeit) >= 6 Then
datFaelligkeit = datFaelligkeit - (7 - Weekday(datFaelligkeit))                 ' Wenn Fälligkeit = Wochenende, dann Freitag setzen
End If
objEMailCopy.Subject = Right(objEMailCopy.Subject, Len(objEMailCopy.Subject) - 17)
objEMailCopy.Subject = "ULTIMATE: " & Format(datFaelligkeit, "dd.mm.yyyy") & " >> " & objEMailCopy.Subject
objEMailCopy.Save
End If
End If
End Sub
Wäre super, wenn wieder einer eine Idee hätte oder einen Ansatz hätte, wie ich vorgehen könnte...
LG
Patrick

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: [Outlook] vba-Code für shared-Mailbox
09.09.2022 19:44:50
Fennek
Hallo,
in meinem Outlook gibt es mehrere Account, aber keinen "Shared"
Das Event zu nutzen benötigt:
In "ThisOutlookSession" oberhalb der ersten Sub:
Public WithEvents App As Outlook.Application

Public Sub Initialize_handler() 'muss einmal laufen
Set App = Outlook.Application   'Test NewMail
End Sub

Private Sub App_NewMailEx(ByVal EntryIDCollection As String)
Dim EML As Object, ini As Integer, fin As Integer, sID As String, iLen As Integer
Debug.Print "NewMailEx"
Debug.Print , EntryIDCollection
ini = 1
iLen = Len(EntryIDCollection)
sID = Mid(EntryIDCollection, ini, (iLen - ini) + 1)
Set EML = Session.GetItemFromID(sID)
Debug.Print "EML", EML.Class, EML.Subject, sID
End Sub
Dies geht für zwei Accounts. Ich habe das ebenfalls vom M$ übernommen, halte es aber für nicht nötig, da sID = EntryIDCollection, vielleicht gibt es aber Spezialfälle.
mfg
Anzeige
AW: [Outlook] vba-Code für shared-Mailbox
13.09.2022 08:29:02
Patrick
Hallo Thorsten,
vielen Dank für den Input.
Dieses Snippet habe ich vergessen in meinem Post mitaufzuführen ... das hatte ich auch initialisiert:

Public Sub Initialize_handler() 'muss einmal laufen
Set App = Outlook.Application   'Test NewMail
End Sub
Und meines Erachtens habe ich den anderen Part von Dir, bereits in meinem Code - löst aber nicht das "Shared Mailbox"-Problem. Ich gehe auch noch einmal auf die Suche nach einer Lösung... Falls ich es rausfinde, poste ich es hier in diesem Thread, damit dieses wunderbare Forum eine Quelle für die Lösung der vielfältigen Probleme bleibt.
LG
Patrick
Anzeige
AW: [Outlook] vba-Code für shared-Mailbox
14.09.2022 14:48:49
Patrick
Habs und für all, die es auch mal brauchen könnten - hier der Code:

Option Explicit
Private WithEvents inboxItems As Outlook.Items
Private Sub Application_Startup()
Dim outlookApp As Outlook.Application
Dim objectNS As Outlook.NameSpace
Dim ShrdRecip As Outlook.Recipient
Set outlookApp = Outlook.Application
Set objectNS = outlookApp.GetNamespace("MAPI")
Set ShrdRecip = objectNS.CreateRecipient("yourmailname[at]yourdomain[dot]com")
Set inboxItems = objectNS.GetSharedDefaultFolder(ShrdRecip, olFolderInbox).Items
End Sub
Private Sub inboxItems_ItemAdd(ByVal Item As Object)
'Debug.Print
Dim objEMail, objEMailCopy As Object
Dim intInitial As Integer
Dim intFinal As Integer
Dim strEntryId As String
Dim
...

Anzeige

76 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige