Autor Thema: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden  (Gelesen 5392 mal)

Offline Pinky0105

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
Hallo zusammen,

ich habe die nächste Anforderung für mein Excel-Makro erhalten. Es soll die Möglichkeit geben, mehrere Mails nacheinander zu versenden.
Alles soweit ok, funktioniert auch bis auf eine Kleinigkeit. Wenn die Mail gesendet wird, schließe ich das Mailfenster anschließend. Dabei öffnet sich die Abfrage ob ich Änderungen speichern möchte. Wie kann ich das Mailfenster schließen, ohne das diese Abfrage kommt. Es soll auf jeden Fall gespeichern werden.

Mein Code-Ausschnitt hierfür sieht wie folgt aus:

    Set session = CreateObject("Notes.NotesSession")
    Set db = session.GetDatabase("xxxxxxx", "xxxxx.nsf")

    If db.IsOpen = False Then db.OPENMAIL
    
    Set doc = db.CreateDocument
    With doc
        .form = "Memo"
        .SendTo = EmpfMail
        .Subject = Betreff
        .Sign = "0"
        .SAVEMESSAGEONSEND = True
        .PostedDate = Now()
        .ReplyDate = Termin
    End With
    
    Set Workspace = CreateObject("Notes.NotesUIWorkspace")
    Set uidoc = Workspace.EDITDOCUMENT(True, doc)
    
    With uidoc
        .GOTOFIELD ("Body")
        If Anrede = "Herr" Then
            .inserttext ("Sehr geehrter Herr " & EmpfNachName & "," & vbCrLf & vbCrLf)
        Else
            .inserttext ("Sehr geehrte Frau " & EmpfNachName & "," & vbCrLf & vbCrLf)
        End If
        .inserttext ("nachstehend erhalten Sie Ihre Planungsaufgabe:" & vbCrLf)
        .inserttext (vbCrLf)
        Sheets("Formular").Range("A5:G22").Copy 'Bereich mit dem zu übernehmenden Text
        .Paste
        .inserttext (vbCrLf)
        .Send
        .Close
    End With

Die Option ".SAVEMESSAGEONSEND" habe ich sowohl mit True als auch mit SaveIt probiert. Beides scheint komplett ignoriert zu werden.

Bin für jeden Tip dankbar.

Beste Grüße
Pinky0105
>>> Wenn Du denkst es geht nicht mehr, kommt irgendwo ein Lichtlein her. <<<

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
zwischen .Send und .Close eine Zeile mit .Document.SaveOptions="0" probieren...
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

Offline Pinky0105

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
Ok, vielen Dank, die Zeile hab ich eingefügt und es kommt auch die Abfrage nicht mehr.  ;D

Die Mails werden versendet und kommen auch an, aber sie erscheinen nicht mehr unter den gesendeten Mails.
Dort möchte ich sie aber speichern, jedoch ohne diese Abfrage. Der Wert "1" bringt leider wieder die Abfrage zum Vorschein.

Gibt es noch eine andere Möglichkeit?
>>> Wenn Du denkst es geht nicht mehr, kommt irgendwo ein Lichtlein her. <<<

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Vor (!) dem .Document.SaveOptions = "0" das Dokument speichern, also ein .Save einfügen.

Offline Pinky0105

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
Laufzeitfehler '7417':

Notes-Fehler - Diese Operation ist nicht zulässig, während ein Dialogfeld angezeigt wird.


Nun kommt ein anderes Dialogfeld als beim Schließen:

Möchten Sie Ihre Änderungen senden, speichern oder verwerfen? Klicken Sie auf 'Abbrechen', wenn Sie die Bearbeitung fortsetzen möchten.
>>> Wenn Du denkst es geht nicht mehr, kommt irgendwo ein Lichtlein her. <<<

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Dann speichere halt im Backend: Gleiche Stelle, aber ein doc.Save (True, False, True)

Offline Pinky0105

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
Danke für den Tip. Das habe ich eben mal versucht, aber VBA erkennt dies nicht an.

Es wird ein "=" erwartet. Somit habe ich es mit .save = (True, False, True) probiert aber das akzeptiert VBA genauso wenig wie .save = "True, False, True" geschweige denn das ganze ohne "=" und ohne Klammern oder Anführungszeichen.

Mails werden gesendet, die Abfrage wird unterdrückt aber nach wie vor nicht unter "gesendet" gespeichert.
Vermutlich mach ich irgendwas falsch, ich komm nur nicht drauf was.  ::)  :-:
>>> Wenn Du denkst es geht nicht mehr, kommt irgendwo ein Lichtlein her. <<<

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Ein ".Save" geht natürlich gar nicht, da das With sich auf das NotesUIDocument bezieht. Gespeichert werden muss aber (wegen der Dialogbox) das Backend Document, also das zuvor deklarierte "doc".

Offline Pinky0105

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
 ;D ;D ;D
Hurraaa, jetzt funktioniert´s. Besten Dank.
Ich programmier nicht hauptberuflich, nur hier und da mal n kleines Makro, daher hat´s n bissl länger gedauert.

Habe jetzt ein

        Call doc.Save(True, False, True)

vor das .Send eingefügt und schon geht´s.

Besten Dank für Eure Unterstützung.  :)
>>> Wenn Du denkst es geht nicht mehr, kommt irgendwo ein Lichtlein her. <<<

Offline Pinky0105

  • Frischling
  • *
  • Beiträge: 12
  • Geschlecht: Männlich
« Letzte Änderung: 15.06.16 - 15:28:37 von Pinky0105 »
>>> Wenn Du denkst es geht nicht mehr, kommt irgendwo ein Lichtlein her. <<<

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz