Thema Datum  Von Nutzer Rating
Antwort
Rot Outlookl / Laufzeitfehler '-2147221239 (80040109)'
16.10.2024 06:00:15 Nino
NotSolved
16.10.2024 13:16:01 Gast67091
*****
Solved
17.10.2024 14:19:48 Nino
NotSolved
17.10.2024 16:25:39 Gast67091
*****
NotSolved

Ansicht des Beitrags:
Von:
Nino
Datum:
16.10.2024 06:00:15
Views:
86
Rating: Antwort:
  Ja
Thema:
Outlookl / Laufzeitfehler '-2147221239 (80040109)'

Guten Morgen,

wir besitzen ein Makro im akt. Office 365 (klassik, nicht "neu"), welches ein ausgewähltes Mail kopiert, diese eine Kategorie zuweist, als gelesen markiert, speichert (sonst sind die davor gesetzten Punkte nicht vorhanden) und anschließend in einen Ordner verschiebt den der User davor ausgewählt hat.

Das funktionierte eine Weile ganz gut, bis eines Tages der Laufzeitfehler '-2147221239 (80040109)' kam. Nur bei gewissen Usern kommt dieser Fehler hin und wieder, wenn jemand anderer versucht die Mail abzulegen funktioniert es. Der User selbst kann es so oft probieren wie sein Herz begehrt, immer mit dem gleichen Ergebnis. Es gibt User die verwenden Windows 10 und welche mit 11.

Google half mir leider nicht wirklich weiter, es kam eigentlich nur diese Seite: learn.microsoft.com (Objektmodell mit einem IMAP-Konto), so richtig schlau daraus bin ich leider auch nicht geworden. Ich habe hier herausgelesen, dass man ggf. eine gewisse Zeit "warten" sollte, bevor man speichert. Eine Funktion die mit "DoEvents" z.B. 0,1 Sekunden wartet. Vielleicht ist das auch zu wenig Zeit, für mich klang das aber eigentlich nach genug Zeit um einen PC arbeiten zu lassen. Hat nur leider nicht geholfen... Jedoch vielelicht verstehe ich den Inhalt dieser Seite auch falsch?

Lange rede kurzer Sinn, siehe unterhalb der Code-Bereich wo der Laufzeitfehler vorkommt inkl. Zusatzinformationen:

[...]
Dim oMail As Object ' das markierte Element in Outlook muss nicht immer ein E-Mail sein -> Objekt
Dim oCopyFolder As Object ' User input in welchen Ordner in Outlook das Mail kopiert werden soll
[...] User Input für Ordnerauswahl    
If oMail.Class = olMail Then
    Dim oMailItem As Outlook.MailItem
    Dim oCopyMail As Outlook.MailItem
    Set oMailItem = oMail
    Set oCopyMail = oMailItem.Copy
    oCopyMail.Categories = "Kopie"
    oCopyMail.UnRead = False  ' als gelesen markieren
    WasteTime (0.1)
    oCopyMail.Save  ' die obrigen Änderungen in der Mail speichern // hier kommt der Laufzeitfehler
    oCopyMail.Move oCopyFolder  ' kopiertes Mail in den ausgewählten Ordner schieben
    Set oMailItem = Nothing
    Set oCopyMail = Nothing
ElseIf oMail.Class = 54 Or oMail.Class = 181 Or oMail.Class = 53 Or oMail.Class = 55 Or oMail.Class = 56 Or oMail.Class = 57 Then  ' Meetings (Appointments sind Kalendereinträge)
    Dim oMeeItem As Outlook.MeetingItem
    Dim oCopyMee As Outlook.MeetingItem
    Set oMeeItem = oMail
    Set oCopyMee = oMeeItem.Copy
    oCopyMee.Categories = "Kopie"
    oCopyMee.UnRead = False  ' als gelesen markieren
    WasteTime (0.1)
    oCopyMee.Save  ' die obrigen Änderungen des Termins speichern // für einen Termin ist es noch nicht passiert
    oCopyMee.Move oCopyFolder  ' kopierter Termin in den ausgewählten Ordner schieben
    Set oMeeItem = Nothing
    Set oCopyMee = Nothing
Else  ' als Sicherheit vorhanden, sollte eigentlich nie vorkommen (nur Mails und Termine aus einem Posteingang sollten abgelegt werden)
    Dim oCopyObj As Object
    Set oCopyObj = oMail.Copy
    oCopyObj.Categories = "Kopie"
    oCopyObj.UnRead = False  ' als gelesen markieren
    WasteTime (0.1)
    oCopyObj.Save  ' die obrigen Änderungen in des Objektes speichern
    oCopyObj.Move oCopyFolder  ' kopiertes Objekt in den ausgewählten Ordner schieben
    Set oCopyObj = Nothing
End If
[...] Wenn Anhänge vorhanden werden diese entsprechend gespeichert

 

"WasteTime" ist eine Funktion die mit einem Timer, Schleife und DoEvents die angegebenen Sekunden abwartet. Also in diesem Fall wartet es immer 0,1 Sekunden, bevor die nächste Zeile Code ausgeführt wird.

Ursprünglich hatte ich das komplette If-Statement nicht und habe alles wie das Else darin ausgeführt. Die Idee das nun so aufzusplitten war, dass mit jemand den Input gegeben hat Objekt Variablen nur kurz zu verwenden. Zumal diese teilweise zu Problemen führen, so wie das beschriebene von mir. Leider hat das Umschreiben nicht geholfen, daher bin ich nun hier mit meiner Bitte um Hilfe, oder einen Input der mich ggf. auf den richtigen Weg bringen könnte das Problem zu lösen, hier gelandet.

Das das ganze ggf. am PC des Users oder div. Rechteeinstellungen in Windows liegen könnte, dieser Idee bin ich ebenfalls nachgegangen und bis dato über nichts gestolpert das es sein könnte. Das Verwirrende ist ja eher, dass es die meiste Zeit funktioniert ohne Faxen zu machen und nicht alle User betrifft.

LG, Nino

PS.: Ich hoffe die Formatierung hat einigermaßén funktioniert.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Outlookl / Laufzeitfehler '-2147221239 (80040109)'
16.10.2024 06:00:15 Nino
NotSolved
16.10.2024 13:16:01 Gast67091
*****
Solved
17.10.2024 14:19:48 Nino
NotSolved
17.10.2024 16:25:39 Gast67091
*****
NotSolved