Live-Forum - Die aktuellen Beiträge
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 365: Betreff ändern bei Empfang

Outlook 365: Betreff ändern bei Empfang
07.09.2022 12:41:48
Patrick
Hallo ihr lieben,
da ich mit eurer Hilfe schon recht gut mit Excel vba zurecht komme und ich mir in den letzten Wochen einen schönen Rechner zum Berechnen von Bestellungen gebastelt habe (aktuell habe ich ncohen Sharepoint-Problem, aber ich denke, ich habe die Lösung schon gefunden), wollte ich mal fragen, ob mir auch bei einem Outlook-Themnna helfen könnt. Leider sind die verschiedenen vba-Produkte innerhalb MS doch etwas unterschiedlich...
Folgendes habe ich vor:
Sobald eine E-Mail empfangen wird, soll im Betreff und im Anzeigentext nach bestimmten Wörtern gesucht werden und, falls sie da sind, soll der Betreff so geändert werden, dass ein Datum, das auch im Body steht, zu einem Fälligkeitsdatum berechnet wird (+40 Tage) und dann in den Betreff geschrieben wird.
Schritt für Schritt
Eine E-Mail wird empfangen
Es wird geprüft, ob der Betreff dieser E-Mail mit "Auftrag " beginnt
Falls ja, dann wird geprüft, ob im Body dieser E-Mail der folgende Text steht: "Zusammenfassung Auftrag: Schraubenbestellung"
Sind beide Bedinungen 'true', dann mache jetzt folgendes:
Kopiere die E-Mail (sie liegt jetzt 2x im Posteingang)
Suche im E-Mail-Body (ob Kopie oder Original ist dabei egal) die Zeile in der steht "Auftragsdatum: " und lies das dahinterliegende Datum (10 Stellen) ein, also bspw. "07.09.2022"
Addiere 40 Tage dazu und schreibe jetzt im Betreff anstelle "Auftrag ": "Termin: " & das neue Datum (also: 17.10.2022) & " - ", gefolgt vom restlichen, alten Betreff
Die Mail wird gespeichert und in den Ordner "Aufträge" verschoben.
Original-Mail-Text (Input)
_______________________________
Betreff: Auftrag Heinze AG
_______________________________
Body:
Sehr geehrter Herr Heinze,
hier der Auftrag:
Zusammenfassung Auftrag: Schraubenbestellung
Auftragsdatum: 07.09.2022
...
mfg
Patrick
_______________________________
Geänderte E-Mail (output nach VBA-Skript):
_______________________________
Betreff: Termin: 17.10.2022 - Heinze AG
_______________________________
Body:
Sehr geehrter Herr Heinze,
hier der Auftrag:
Zusammenfassung Auftrag: Schraubenbestellung
Auftragsdatum: 07.09.2022
...
mfg
Patrick
_______________________________
Kann mir jemand helfen?
Ich würde so gerne auch ein wenig Outlook-vba lernen wollen, damit ich Excel und Outlook verknüpfen kann...
Danke schon mal im voraus für eure Zeit.
Patrick

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

Betreff
Datum
Anwender
Anzeige
AW: Outlook 365: Betreff ändern bei Empfang
07.09.2022 12:47:45
Oberschlumpf
Hi Patrick,
du bist hier aber in einem Excel-Forum.
Das bedeutet, hier triffst du Excel-FACHleute.
Was du suchst, sind aber Outlook-FACHleute.
Daher google mal nach Outlook-Foren.
Aber wer weiß - vielleicht erhältst du auch hier ne hilfreiche Antwort.
Ich erzähls dir nur, damit du dich nich wunderst, wenn keine Antwort mehr kommt.
Ciao
Thorsten
AW: Outlook 365: Betreff ändern bei Empfang
07.09.2022 13:09:25
Patrick
Hey Thorsten
klar, weiss ich doch.
Aber ich hatte gesehen, dass hier manchmal auch Outlook-Themen gelöst oder diskutiert wurden. Daher dachte ich, ich versuche mal mein Glück.
Bei PPT-VBA konntet ihr mir ja damals auch weiterhelfen...
LG
Patrick
Anzeige
AW: Outlook 365: Betreff ändern bei Empfang
07.09.2022 12:52:07
Fennek
Hallo,
so als erten Ansatz:

dim Tag as date
if instr(1, eml.subject, "Auftrag") > 0 then
if instr(1, eml.body,  "Zusammenfassung Auftrag: Schraubenbestellung") > 0 then
set eml2 = eml.copy
pos = instr(1, eml.body, "Auftragsdatum")
tag = cdate(mid(eml.body,pos+15, 10)
eml2.subject = eml2.subject & format(tag+40, "dd.mm.yyyyy")
eml2.save
Gut machen geht nur mit einem Test, das dauert aber etwas lange.
mfg
AW: Outlook 365: Betreff ändern bei Empfang
07.09.2022 13:09:07
Patrick
Ha, Danke Fennek.
Verstehe den Ansatz, herzlichen Dank.
Dann probiere ich mich mal im Outlook vba... den Rest bastle ich mir schon dazu, falls es irgendwo hakt.
Wenn das klappt, dann fallen mir noch 1,8 Milliarden andere nützliche Skripte ein, die ich mir basteln könnte.
Ich gebe Bescheid, ob ich alles hinbekommen habe.
LG
Patrick
Ihr seid echt die besten... und BTW:
Im Vergleich zu allen anderen Excel-VBA-Foren ist das hier wirklich das aller-aller-beste.. quasi das stackoverflow des Excel-vba.
Was im Übrigen auch manchmal eine ganz gute Quelle für Excel-VBA-Lösungen ist...
;)
Anzeige
AW: Outlook 365: Betreff ändern bei Empfang
09.09.2022 13:12:46
Patrick
Hat geklappt. Danke Dir Fennek. Dein Input war Gold wert, um zu verstehen, wie Outlook "tickt"
;)
Da bestimmt auch mal andere so ein Problem haben.. hier mein - bestimmt noch verbesserungswürdiger - Code:

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
Jetzt habe ich nur noch ein Problem:
Wie bekomme ich den Code "hinter" das geteilte Postfach?
Weiß das jemand?
Merci
und vielen Dank.
Patrick
Anzeige
mach lieber...
09.09.2022 15:55:40
Oberschlumpf
Hi Patrick
...einen neuen Beitrag auf.
Denn deine hier gestellte Erstfrage ist ja erfreulicherweise erledigt (danke für deinen funktionierenden Code).
Aber das, was du jetzt noch wissen möchtest, ist ja wieder eine ganz neue Frage.
Ciao
Thorsten

60 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige