Das Notes Forum

Domino 9 und frühere Versionen => ND9: Administration & Userprobleme => Thema gestartet von: Fabidi am 08.06.16 - 15:41:44

Titel: Mail via Excel verschicken
Beitrag von: Fabidi am 08.06.16 - 15:41:44
Hallo Leute,

ich habe ein Problem dabei, die Mail bearbeiten zu können.
Wenn ich das Makro ausführe, dann öffnet sich auch wie gewollt Lotus Notes, allerdings beinhaltet es nur den Email-Adressen sowie den Betreff. Wohin ist der Bodytext verschwunden?? Denn wenn ich das Makro so abändere, dass die Email automatisch abgeschickt wird, dann ist die Mail inkl. Inhalt.
Bitte um Hilfe!!

Beiliegend ist mein Code.


Sub SendNotesMail2()

Dim UserName As String
Dim MailDbName As String
Dim Recipient As Variant
Dim Maildb As Object
Dim MailDoc As Object
Dim session As Object
Dim stSignature As String


With Application
.ScreenUpdating = False
.DisplayAlerts = False


AWS = ActiveWorkbook.FullName
Set Worksheet = Application.ActiveWorkbook.Worksheets.Item(1)
Set session = CreateObject("Notes.NotesSession")
Set Maildb = session.CURRENTDATABASE
Set MailDoc = Maildb.createdocument
MailDoc.Form = "Memo"
Set Workspace = CreateObject("Notes.NOTESUIWORKSPACE")
stSignature = Maildb.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
Recipient = "Testgruppe"
MailDoc.display = "Testgruppe"
MailDoc.sendto = "Testgruppe"
MailDoc.copyto = ""
MailDoc.subject = "prices"
MailDoc.SAVEMESSAGEONSEND = saveit
Set ritem = MailDoc.CREATERICHTEXTITEM("Body")
For i = 2 To 2
With ritem
        .appendtext ("Please find below the updated prices:")
        .addnewline (3)
End With
Next
For i = 2 To 37

With ritem
        .appendtext ("")
        .appendtext (Cells(i, 2).Value & vbTab & Cells(i, 3).Value & vbTab & Cells(i, 4).Value & vbTab & Cells(i, 5).Value & vbTab)
        .addnewline (1)
End With

 Next
For i = 2 To 2
With ritem
        .appendtext ("" & vbCrLf & vbCrLf & stSignature)
End With
Next



Danke!!!
Titel: Re: Mail via Excel verschicken
Beitrag von: Bastel123 am 08.06.16 - 17:03:07
Ein bischen Suche im Forum führt einen zu diesem Tread:

http://atnotes.de/index.php/topic,59825.80.html

Da wurde alles durchgekaut.

Sebastian
Titel: Re: Mail via Excel verschicken
Beitrag von: Tode am 08.06.16 - 17:03:50
Also erstmal fehlt natürlich in Deinem Beispielcode die Stelle, wo Du das Ganze zum bearbeiten öffnest, das macht es etwas schwieriger, das zu analysieren.
Ausserdem wäre es schön, wenn Du code auch in CODE- Tags einfasst, das macht das Ganze wesentlich besser lesbar.

Nun aber zum Problem: Richtext- operationen werden gecached, und erst "tatsächlich" ins Dokument geschrieben, wenn man entweder das Dokument speichert, oder aber das Richtext- Item updated.

Probiere mal ganz am Ende, nach der Schleife die Zeile:
Code
rtitem.Update
, das sollte schon reichen. Wenn nicht, dann füge noch ein
Code
rtitem.Compact
ein, das sollte auf jeden Fall reichen.
Titel: Re: Mail via Excel verschicken
Beitrag von: Fabidi am 13.06.16 - 10:41:47
Hallo Tode :D

Erst mal danke für den simplen aber sehr erfolgreichen Tipp. Hat super funktioniert.
Allerdings steht jetzt meine Signatur (so wie es sein soll) ganz am Ende, aber auch ganz am Anfang der Mail. Der generierte Inhalt wird also erst unterhalb der Signatur eingefügt.
Vielleicht hast du ja noch eine Idee wie ich die Signatur oberhalb ausblenden lassen kann oder so ähnlich?

Vielen Dank im Voraus!
Titel: Re: Mail via Excel verschicken
Beitrag von: Tode am 13.06.16 - 10:57:55
Das Problem ist: Du fügst die Signatur manuell im Code ein, aber in dem Moment, wo Du das Dokument zum Bearbeiten ins Frontend bringst, wird durch die Option "Signatur automatisch hinzufügen" die Signatur nochmal automatisch hinzugefügt.

Das zu verhindern ist nicht trivial, und es gibt verschiedene Ansätze, das zu tun. Die hier alle darzulegen / durchzuprobieren geht aber ins Consulting... und damit verdiene ich mein Geld.

Sorry, da musst Du selbst recherchieren, möglicherweise reicht es, im Kalenderprofil temporär die Option für das automatische einfügen der Signatur zu deaktivieren:
Code
Set docProfile = Maildb.GetProfileDocument( "CalendarProfile" )
Call docProfile.ReplaceItemValue( "FeldFürAutomatischeSignatur", "" )
Call docProfile.Save( True, True, True)

Nicht vergessen, den Status zu merken, und nachher wieder zurückzusetzen...
Titel: Re: Mail via Excel verschicken
Beitrag von: Fabidi am 13.06.16 - 11:02:51
ok ja gut kann ich verstehen. Ich werde es dann wohl einfach temporär ausblenden lassen :)

Da fällt mir ein, dass ich noch ein "Problem" damit habe. Und zwar einen kleinen Schönheitsfehler.
Wie schaffe ich es, dass bestimmte Zellen als fett markiert werden, damit es in der Mail anschaulicher und übersichtlicher wird?

Vielen Dank im Voraus.
Titel: Re: Mail via Excel verschicken
Beitrag von: Tode am 13.06.16 - 11:26:59
Für Formatierungen musst Du Dich mit NotesRichTextStyle und AppendStyle auseinandersetzen.
Titel: Re: Mail via Excel verschicken
Beitrag von: Fabidi am 13.06.16 - 11:58:38
ok alles klar.

Kannst du mir denn dabei helfen das jeweils aktuelle Datum ans Ende der Betreffzeile einzufügen?
Ich weiß nicht genau, wie ich das machen soll. Also ob es dafür auch einen Code gibt oder ob man vielleicht die Betreffzeile mit einer Zelle aus Excel verknüpfen kann?

Danke!
Titel: Re: Mail via Excel verschicken
Beitrag von: Peter Klett am 13.06.16 - 12:22:13
Das ist aber VBA-Code, in Notes würde ich das so schreiben, ob VBA ein Now kennt, weiß ich nicht, oder ob das formatiert werden kann oder muss.

Code
MailDoc.subject = "prices " & Now
Titel: Re: Mail via Excel verschicken
Beitrag von: Fabidi am 13.06.16 - 13:10:47
ja hat geklappt :) Vielen Dank.

Ist jetzt nur noch ein Schönheitsfehler, aber es wird das Datum inkl. der Uhrzeit angezeigt. Die Uhrzeit brauch ich allerdings nicht. Kann man das umändern?
Titel: Re: Mail via Excel verschicken
Beitrag von: koehlerbv am 13.06.16 - 13:17:41
Today
Titel: Re: Mail via Excel verschicken
Beitrag von: Fabidi am 13.06.16 - 13:20:04
Funktioniert leider nicht :(
Titel: Re: Mail via Excel verschicken
Beitrag von: koehlerbv am 13.06.16 - 13:31:05
An sich sollte Today () in Excel tun (in anderen Office-Programmen nicht). Alternative: Date ().
Eine Typwandlung mit Cstr sei dringend empfohlen.
Titel: Re: Mail via Excel verschicken
Beitrag von: Peter Klett am 13.06.16 - 13:32:30
Hat Excel keine Hilfe?

Format funktioniert in Excel, wie in Notes (gerade getestet)

Code
Format (Now, "dd.mm.yyyy")
Titel: Re: Mail via Excel verschicken
Beitrag von: Fabidi am 13.06.16 - 13:43:32
Schlussendlich hat "Date" funktioniert.

Vielen Dank !