Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Pinky0105 am 02.06.16 - 12:48:07

Titel: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: Pinky0105 am 02.06.16 - 12:48:07
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
Titel: Re: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: Tode am 02.06.16 - 14:13:10
zwischen .Send und .Close eine Zeile mit .Document.SaveOptions="0" probieren...
Titel: Re: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: Pinky0105 am 02.06.16 - 14:39:56
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?
Titel: Re: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: koehlerbv am 02.06.16 - 15:05:33
Vor (!) dem .Document.SaveOptions = "0" das Dokument speichern, also ein .Save einfügen.
Titel: Re: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: Pinky0105 am 02.06.16 - 15:22:50
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.
Titel: Re: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: koehlerbv am 02.06.16 - 17:37:12
Dann speichere halt im Backend: Gleiche Stelle, aber ein doc.Save (True, False, True)
Titel: Re: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: Pinky0105 am 02.06.16 - 18:16:31
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.  ::)  :-:
Titel: Re: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: koehlerbv am 02.06.16 - 18:27:58
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".
Titel: Re: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: Pinky0105 am 02.06.16 - 18:47:23
 ;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.  :)
Titel: Re: Suche VBA-Befehl: Mail automatisch speichern und schließen nach senden
Beitrag von: Pinky0105 am 09.06.16 - 19:41:10
  ???