Das Notes Forum

Domino 9 und frühere Versionen => ND9: Administration & Userprobleme => Thema gestartet von: Benni1988 am 22.02.16 - 17:42:57

Titel: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 22.02.16 - 17:42:57
Hallo zusammen,

bitte nicht wundern, ich habe das Problem im Forum "Herbers-Excel Forum" auch gepostet, dort wurde mir allerdings euer Forum dazu empfohlen..

Ich habe vor einen halben Jahr ein Makro geschrieben (mit Hilfe aus verschiedenen Foren), mit dem ich aus Excel heraus diverse E-Mails in Lotus Notes 8.5 versenden konnte. Dies hat auch einwandfrei funktioniert.

Nun haben wir aber auf Lotus Notes 9 umgestellt und ich bekomme immer die Fehlermeldung
"Systemfehler &H800 10 105 (-2147417851). Ausnahmefehler des Servers"

An was könnte das liegen? Vielen Dank für eure Hilfe.

Anbei mein Code:


Sub CommandButton1_Click()
       If MsgBox("Sollen die E-Mail(s) gesendet werden?", vbQuestion + vbYesNo, _
         "Löschen bestätigen") = vbYes Then
     
       Dim sText As Variant, sEmpfang As Variant, sBetrifft As String
       Dim session As Variant, db As Variant, doc As Variant, rtobject, ws As Variant
       Dim x As Integer, y As Integer, Msg As Integer
       Dim sKopie As String, AttachMe As Variant, DerAnhang As Variant
       Dim user As String, server As String, mailfile As String, sBlindKopie As String
       Dim vAn As Variant, vCopy As Variant, vBlind As Variant, sAnhang As String
       Dim sAnrede As Variant
       Dim sVorname As Variant
       Dim sNachname As Variant
       Dim tempAnrede As Variant
         
       ' Verbindung zum Mailserver aufbauen
       Set session = CreateObject("notes.notessession")                      ' Notes muss gestartet  _
     sein
       user = session.UserName
       server = session.GetEnvironmentString("MailServer", True)
       mailfile = session.GetEnvironmentString("MailFile", True)
       Set db = session.GetDatabase(server, mailfile)                        ' Emails zusammenbauen  _
     und rausschicken
       For i = 12 To cells(Rows.Count, 9).End(xlUp).Row
         If cells(i, 10) <> "ja" Then                                        'keine E-Mail, wenn "ja" _
      in Spalte "geantwortet"
           vAn = cells(i, 9)
           sAnrede = Range("e" & i)                                          'Anrede aus Spalte e
           Select Case (sAnrede)
             Case "Herr":                                                    'Im Fall, dass Anrede " _
     Herr" in Spalte e, dann schreibe "Sehr geehrter Herr"
               tempAnrede = "Sehr geehrter Herr"
             Case "Frau":
               tempAnrede = "Sehr geehrte Frau"                              'Im Fall, dass Anrede " _
     Frau" in Spalte e, dann schreibe "Sehr geehrte Frau"
             Case "Sehr geehrte Damen und Herren":
               tempAnrede = "Sehr geehrte Damen und Herren"
             Case "Dear":
               tempAnrede = "Dear"                                           'Im Fall, dass Anrede " _
     Dear" in Spalte e, dann schreibe "Dear"
           End Select
         sVorname = Range("f" & i)                                         'Vorname aus Spalte f
         sNachname = Range("g" & i)                                        'Nachname aus Spalte g
           If Sheets("Tabelle1").Range("h" & i).Value = "Deutsch" Then       'wenn in Spalte "h" " _
     Deutsch" als Sprache steht, dann
             sText = tempAnrede & " " & sNachname & "," & Chr(10) & Chr(10) & Range("B4") & Chr(10)   _
         'dann nehme die Anrede + Nachnamen + den Text aus Zelle "B4"
           Else
             sText = tempAnrede & " " & sVorname & "," & Chr(10) & Chr(10) & Range("D4") & Chr(10)    _
         'sonst nehme Anrede + Vorname + Text aus Zelle "D4"
           End If
         sBetrifft = Range("B3")                                           ' Überschrift in Zelle b3
         sKopie = Range("D3")                                              ' Kopie der E-MAil an e- _
     Mail Adresse aus Zelle "D3"
         sBlindKopie = Mid(vAn, 3)                                         ' schickt an alle Empfä _
     nger eine Blindkopie
         sAnhang = Range("B6")                                             ' Link aus Zelle b6
         sAnhang2 = Range("B7")                                            ' Link aus Zelle b7
         sAnhang3 = Range("B8")                                            ' Link aus Zelle b8
         If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ")              ' cc Array
         If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")   'bcc Array
           Set doc = db.createdocument()
           doc.Form = "Memo"
           doc.sendto = vAn
           If Len(sKopie) > 0 Then doc.CopyTo = vCopy                        'cc Array
            doc.Subject = sBetrifft                                          ' die Betreffzeile
           doc.SAVEMESSAGEONSEND = True
           doc.PostedDate = Now
         'Die Zeilen mit dem Anhang nach hier oben verschieben, ist wichtig die Reihenfolge
         ' *******************************************
           If sAnhang <> "" Then
             Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
             Set DerAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang)
             Set DerAnhang2 = AttachMe.EMBEDOBJECT(1454, "", sAnhang2)
             Set DerAnhang3 = AttachMe.EMBEDOBJECT(1454, "", sAnhang3)
             ',"Attachment" wird nicht benötigt
           End If
         '*******************************
           Set ws = CreateObject("Notes.NotesUIWorkspace")
           ' **durch das öffnen des Dokumentes durch NotesUIWorkspace**
           ' **erreicht man das die eingestellte Signatur aus den **
           ' **Lotus Notes Optionen eingefügt wird
           Call ws.EDITDOCUMENT(True, doc)
           Set doc = ws.CURRENTDOCUMENT
           Call doc.GOTOFIELD("Body")
           Call doc.insertText(sText)
           Call doc.Send(True)
           Call doc.Close               'Schliesst das gesendete Formular
           Call doc.Save(True, True)
           Set AttachMe = Nothing
           Set DerAnhang = Nothing
           Set ws = Nothing
           Set doc = Nothing
         
         End If
       Next i
        ' Verbindung zum Mailserver löschen
     Aufraeumen:
         On Error Resume Next
         Set db = Nothing
         Set session = Nothing
         Exit Sub
     Fehler:
         Resume Aufraeumen
     End If
     End Sub
     
     


Ich bin noch ein ziemlicher Anfänger, wenn es um Makros geht.
Ich hoffe, aus dem Post wird mein Problem ersichtlich

vielen Dank für eure Hilfe

Viele Grüße
Benni
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: WildVirus am 22.02.16 - 20:37:46
Hallo Benni,

herzlich willkommen im Forum.

Was mit direkt auffällt, Du hast keine Fehlerroutinen eingebaut

Auf die Standardfrage - "An welcher Stelle bleibt das Makro hängen?"- wirst Du daher vermutlich keine Antwort haben.

Daher bitte zurück nach Excel, bau Dir eine Fehlerroutine ein, die Dir sagt, wo der Fehler auftritt.

Was mir negativ auffällt, ist, dass Du mehrere Variablen in einer Zeile deklarierst, teilweise mit Typ, teilweise ohne. Eigentlich unsauber und kann auch zu unterschiedlichen Ergebnissen führen, insbesondere wenn kein 'Option Explicit Statement' verwendet wird, das korrekte Typisierung verlangt.

Wenn Du die Stelle kennst, die Probleme macht, kannst Du in die richtige Fehlersuche einsteigen.

Mit gezielten Fragen gibt es auch eine gesteigerte Chance auf Antworten.

Viel Erfolg,
Axel
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Tode am 22.02.16 - 20:47:03
Dafür, dass Du Anfänger bist, sieht der Code (von den Dingen, die Alex angemerkt hat abgesehen) echt anständig aus. Dein Problem: Du kennst nicht den Unterschied zwischen einem NotesDocument und einem NotesUIDocument.

Beide sehen sehr ähnlich aus, haben aber unterschiedliche Methoden.

Die Zeile
Code
Set doc = db.createdocument()
erstellt ein Objekt der Klasse "NotesDocument". Das ist ein Backend- Objekt und spiegelt das Dokument wieder, wie es nachher auf der Platte landet.
Die Zeile
Code
Set doc = ws.CURRENTDOCUMENT
weist der Variablen ein Objekt der Klasse "NotesUIDocument" zu. Es repräsentiert das, was Du als Benutzer im Lotus Notes Client siehst.

Das NotesUIDocument hat eine Property "Document", mit der Du wieder zum Backend- Dokument der Klasse "NotesDocument" kommen würdest.

Dummerweise haben sowohl die NotesDocument als auch NotesUIDocument- Klasse eine Methode "Send". Nur dass die Methode unterschiedliche Parameter hat:
Aus der Designer- Hilfe (die Du auch z.B. hier (http://www-01.ibm.com/support/knowledgecenter/SSVRGU_9.0.0/com.ibm.designer.domino.main.doc/H_NOTESDOCUMENT_CLASS.html) online findest:
Zitat
NotesDocument.Send
Syntax
Call notesDocument .Send( attachForm [, recipients ] )

Parameters
attachForm

Boolean. If True, the form is stored and sent along with the document. If False, it isn't. Do not attach a form that uses computed subforms.

recipients

String or array of strings. Optional. The recipients of the document. See below.
Zitat
NotesUIDocument.Send
Syntax
Call notesUIDocument .Send

Usage
The document must contain a SendTo field indicating the recipients.

There are two kinds of fields that affect the mailing of the document:

If the document contains additional recipient items, such as CopyTo or BlindCopyTo, Notes mails the documents to these recipients, too.
If the document contains items to control the routing of mail, such as DeliveryPriority, DeliveryReport, or ReturnReceipt, Notes uses these when sending the document.

Also musst Du entweder Die Methode des uidoc ohne Parameter verwenden, oder eben die Zeile
Code
Set doc = ws.CURRENTDOCUMENT
so anpassen
Code
Set doc = ws.CURRENTDOCUMENT.Document
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 23.02.16 - 09:44:28
Hallo zusammen,

zuerst einmal vielen Dank für eure ausführlichen Antworten.

Ich werde die Variablen deklarieren.

Fehlerroutinen werde ich später einbauen, da ich mich hierfür erst einlesen muss, und ehrlich gesagt noch nicht genau weiß, wie das geht (wie gesagt bin ja noch Anfänger).

Ich habe jetzt

Set doc = ws.CURRENTDOCUMENT

mit

Set doc = ws.CURRENTDOCUMENT.Document

ersetzt. (da mir das einfacher erschien)

Allerdings erhalte ich nun die Fehlermeldung

"Laufzeitfehler '438': Objekt unterstützt diese Eigenschaft oder Methode nicht"


Und ich weiß leider wieder einmal nicht, was mir das genau sagt :(

Grüße
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Peter Klett am 23.02.16 - 10:42:10
Set doc = ws.CURRENTDOCUMENT.Document
Call doc.GOTOFIELD("Body")

kann nicht funktionieren, denn GOTOFIELD gibt es nur für das NotesUIDocument
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 26.02.16 - 16:25:33
Hallo zusammen,

sorry, dass ich mich erst jetzt wieder melde, aber ich war krank und hatte somit keinen Zugriff auf LN.

Ich habe jetzt eure Tipps PROBIERT anzuwenden, vielen Dank dafür! (Hoffe, habe es richtig gemacht)

Ich bekomme die Mails zumindest wieder gesendet. :)

Allerdings wollte ich euch fragen, ob das so in Ordnung ist, oder ob das immer noch unsauber ist. Möchte mich nämlich gerne verbessern.


Option Explicit


Sub CommandButton1_Click()
  If MsgBox("Sollen die E-Mail(s) gesendet werden?", vbQuestion + vbYesNo, _
    "Löschen bestätigen") = vbYes Then

  Dim i As Long
  Dim sText As Variant
  Dim sEmpfang As Variant
  Dim sBetrifft As String
  Dim session As Variant
  Dim db As Variant
  Dim uiDocument As Variant
  Dim rtobject, ws As Variant
  Dim doc As Variant
  Dim x As Integer
  Dim y As Integer
  Dim Msg As Integer
  Dim sKopie As String
  Dim AttachMe As Variant
  Dim derAnhang As Variant, derAnhang2 As Variant, derAnhang3 As Variant
  Dim user As String
  Dim server As String
  Dim mailfile As String
  Dim sBlindKopie As String
  Dim vAn As Variant
  Dim vCopy As Variant
  Dim vBlind As Variant
  Dim sAnhang As String, sAnhang2 As String, sAnhang3 As String
  Dim sAnrede As Variant
  Dim sVorname As Variant
  Dim sNachname As Variant
  Dim tempAnrede As Variant
 
   
   On Error Resume Next
   
  ' Verbindung zum Mailserver aufbauen
 
  Set session = CreateObject("notes.notessession")                      ' Notes muss gestartet sein
  user = session.UserName
  server = session.GetEnvironmentString("MailServer", True)
  mailfile = session.GetEnvironmentString("MailFile", True)
  Set db = session.GetDatabase(server, mailfile)                        ' Emails zusammenbauen und rausschicken
  For i = 12 To cells(Rows.Count, 9).End(xlUp).Row
    If cells(i, 10) <> "ja" Then                                        'keine E-Mail, wenn "ja" in Spalte "geantwortet"
      vAn = cells(i, 9)
      sAnrede = Range("e" & i)                                          'Anrede aus Spalte e
      Select Case (sAnrede)
        Case "Herr":                                                    'Im Fall, dass Anrede "Herr" in Spalte e, dann schreibe "Sehr geehrter Herr"
          tempAnrede = "Sehr geehrter Herr"
        Case "Frau":
          tempAnrede = "Sehr geehrte Frau"                              'Im Fall, dass Anrede "Frau" in Spalte e, dann schreibe "Sehr geehrte Frau"
        Case "Sehr geehrte Damen und Herren":
          tempAnrede = "Sehr geehrte Damen und Herren"
        Case "Dear":
          tempAnrede = "Dear"                                           'Im Fall, dass Anrede "Dear" in Spalte e, dann schreibe "Dear"
      End Select
    sVorname = Range("f" & i)                                         'Vorname aus Spalte f
    sNachname = Range("g" & i)                                        'Nachname aus Spalte g
      If Sheets("Tabelle1").Range("h" & i).Value = "Deutsch" Then       'wenn in Spalte "h" "Deutsch" als Sprache steht, dann
        sText = tempAnrede & " " & sNachname & "," & Chr(10) & Chr(10) & Range("B4") & Chr(10)      'dann nehme die Anrede + Nachnamen + den Text aus Zelle "B4"
      Else
        sText = tempAnrede & " " & sVorname & "," & Chr(10) & Chr(10) & Range("D4") & Chr(10)       'sonst nehme Anrede + Vorname + Text aus Zelle "D4"
      End If
    sBetrifft = Range("B3")                                           ' Überschrift in Zelle b3
    sKopie = Range("D3")                                              ' Kopie der E-MAil an e-Mail Adresse aus Zelle "D3"
    sBlindKopie = Mid(vAn, 3)                                         ' schickt an alle Empfänger eine Blindkopie
    sAnhang = Range("B6")                                             ' Link aus Zelle b6
    sAnhang2 = Range("B7")                                            ' Link aus Zelle b7
    sAnhang3 = Range("B8")                                            ' Link aus Zelle b8
    If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ")              ' cc Array
    If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")   'bcc Array
      Set doc = db.createdocument()
      doc.Form = "Memo"
      doc.sendto = vAn
      If Len(sKopie) > 0 Then doc.CopyTo = vCopy                        'cc Array
       doc.Subject = sBetrifft                                          ' die Betreffzeile
      doc.SAVEMESSAGEONSEND = True
      doc.PostedDate = Now
    'Die Zeilen mit dem Anhang nach hier oben verschieben, ist wichtig die Reihenfolge
    ' *******************************************
      If sAnhang <> "" Then
        Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
        Set derAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang)
        Set derAnhang2 = AttachMe.EMBEDOBJECT(1454, "", sAnhang2)
        Set derAnhang3 = AttachMe.EMBEDOBJECT(1454, "", sAnhang3)
        ',"Attachment" wird nicht benötigt
      End If
     
     
    '*******************************
      Set ws = CreateObject("Notes.NotesUIWorkspace")
      ' **durch das öffnen des Dokumentes durch NotesUIWorkspace**
      ' **erreicht man das die eingestellte Signatur aus den **
      ' **Lotus Notes Optionen eingefügt wird
      Call ws.EDITDOCUMENT(True, doc)
      Set uiDocument = ws.CURRENTDOCUMENT
      Call uiDocument.GOTOFIELD("Body")
      Call uiDocument.insertText(sText)
      Call uiDocument.Send(True)
      Call uiDocument.Close               'Schliesst das gesendete Formular
      Call uiDocument.Save(True, True)
      Set AttachMe = Nothing
      Set derAnhang = Nothing
      Set ws = Nothing
      Set doc = Nothing
   
    End If
  Next i
 
   ' Verbindung zum Mailserver löschen
Aufraeumen:
    On Error Resume Next
    Set db = Nothing
    Set session = Nothing
    Exit Sub
Fehler:
    Resume Aufraeumen
End If

End Sub




Viele Grüße
Benni
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Peter Klett am 27.02.16 - 21:35:36
      Call ws.EDITDOCUMENT(True, doc)
      Set uiDocument = ws.CURRENTDOCUMENT
      Call uiDocument.GOTOFIELD("Body")
      Call uiDocument.insertText(sText)
      Call uiDocument.Send(True)
      Call uiDocument.Close               'Schliesst das gesendete Formular
      Call uiDocument.Save(True, True)

Den oberen Teil habe ich mir nicht näher angeschaut, aber der untere sieht grundsätzlich ganz gut aus. Mich wundert die Reihenfolge etwas. Ich würde das Dokument erst senden, dann speichern und dann schließen. Dass man das uiDocument nach dem Schließen noch speichern kann, verwundert mich etwas, möglicherweise dreht Notes selbst bei Ausführung das um (in Formelsprache gibt es soetwas jedenfalls). Ebenso wundert mich, dass jetzt angeblich das Senden über das uidoc mit Parameter funktionieren soll, was ursprünglich einen Fehler gebracht hat. Das Speichern des uidoc hat eigentlich auch keine Parameter.

Nach meinem Verständnis wäre es so richtig.

      Call ws.EDITDOCUMENT(True, doc)
      Set uiDocument = ws.CURRENTDOCUMENT
      Call uiDocument.GOTOFIELD("Body")
      Call uiDocument.insertText(sText)
      Call uiDocument.Send
      Call uiDocument.Save
      Call uiDocument.Close               'Schliesst das gesendete Formular

Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 29.02.16 - 10:20:52
Hallo Peter,

ja, aber es funktioniert einwandfrei.

Ja, von der Logik her, ist es im nachhinein echt komisch, änder ich die Reihenfolge allerdings auf erst senden und dann speichern, bekomme ich in Notes folgende Meldung
Sind Sie sicher? Diese Nachricht wurde bereits an einen oder mehrere Empfänger gesendet…“

Ich weiß zwar nicht warum, aber ich lasse es dann lieber so...

Grüße
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 07.03.16 - 11:27:30
Hallo zusammen,

nachdem der Code jetzt gut funktioniert hat, stürtzt LN jetzt immer ab und es kommt folgende Widows-Meldung.


IBM Notes/Domino funktioniert nicht mehr

Problemdetails:
Problemereignisname: APPCRASH
Anwendungsname: NLNOTES.ExE
Anwendungsversion: 9.0.14.15158
Answendungszeitstempel: 557542 fc
Fehlermodulname: StackHash_26c4


Was bedeutet das? Wieso kommt der Fehler auf einmal?

Grüße
Benni
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Tode am 07.03.16 - 11:58:03
Ein Notes- Crash produziert immer einen NSD im Verzeichnis "IBM_TECHNICAL_SUPPORT" im Data- Verzeichnis des Benutzers. Dort steht drin, warum der Client gecrashed ist (wenn man den NSD- Prozess nicht abwürgt und ihn wirklich bis zum Ende laufen lässt).

Ohne NSD keine Möglichkeit, eine Aussage zu treffen.
ACHTUNG: Das NSD enthält sehr viele System- Informationen. Also nicht einfach hier hochladen...
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 10.03.16 - 10:56:17
Hallo,

danke, aber ich habe nichts abgebrochen. Mehr Informationen erhalte ich nicht...
Vor allem ist das alles Neuland für mich.

Aber der Fehler passiert nur, wenn ich eine Datei im Anhang habe. Ohne Datei funktioniert es einwandfrei

Grüße
Benni
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 10.03.16 - 10:58:39
aber auch nicht jedes Mal...
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Tode am 10.03.16 - 13:01:50
NSD gefunden?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 10.03.16 - 16:51:14
Alternativ kannst du die Frontend- durch die Backend- Funktionen ersetzen, also NotesDocument anstatt NotesUiDocument.

Dann mach bitte ein:
AttachMe.saveToDisk = true
nach
Set DerAnhang3 = AttachMe.EMBEDOBJECT(1454, "", sAnhang3)
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 11.03.16 - 08:44:48
Hallo zusammen,

Tode meinst du das?


Generated Messages:

   INFO (0): failed to match all of the Notes processes
   INFO (0): Rcplauncher returned success. Javacore was created successfully.

   INFO (0): Javacore request was successful, but we couldn't find the associated javacore file. NSD will check again later.

   INFO (0): NSD found RCP Monitor Log C:\Program Files (x86)\IBM\Lotus\Notes\Data\workspace\logs\rcpmon.log
   INFO (0): Memcheck running stand-alone
   INFO (0): No Directory Listings for FT (none were open).
   INFO (0): We waited for 60 seconds, and no javacore file was found for pid 5152. The nsd parameter maxJavaCoreWaitSec controls how long we wait for a javacore to be generated.

   INFO (0): process [  notes2:  1420] has already terminated
   INFO (0): process [ NLNOTES:  16cc] has already terminated
   INFO (0): Deleting pid.nbf
   WARNING (0): Failed to copy C:\Program Files (x86)\IBM\Lotus\Notes\Data\pid.nbf; error: 20

   WARNING (3): can't get process 0x16cc status
   WARNING (3): can't get process 0x1420 status
   WARNING (0): couldn't get process info [ NLNOTES:  16cc]
   ERROR (4): can't attach to process [ audiodg:  1924] - (5) Zugriff verweigert

   ERROR (4): can't attach to process [ audiodg:  1924] - (5) Zugriff verweigert

   ERROR (4): can't attach to process [ audiodg:  1924] - (5) Zugriff verweigert

   ERROR (4): can't attach to process [ audiodg:  1924] - (5) Zugriff verweigert

   ERROR (4): can't attach to process [ audiodg:  1924] - (5) Zugriff verweigert
   ERROR (4): can't attach to process [ audiodg:  1924] - (5) Zugriff verweigert
   ERROR (4): can't attach to process [ audiodg:  1924] - (5) Zugriff verweigert
   ERROR (4): can't attach to process [ audiodg:  1924] - (5) Zugriff verweigert
   ERROR (48): couldn't access shared memory key 'Session\1\IRIS$MEM$MM405$C.Program Files (x86).IBM.Lotus.Notes.Data' - (2) No such file or directory
   ERROR (5): can't access process [ NLNOTES:  16cc] memory @0x659a2c00 - (22) Invalid argument
   ERROR (0): GetUdpStatistics() call failed with error = ffffffff

   ERROR (0): GetTcpStatistics() call failed with error = ffffffff

   ERROR (0): GetIcmpStatistics() call failed with error = ffffffff



@jBubbleBoy:
Habe ich eingefügt. Für was genau ist der Befehel?

Noch einmal vielen Dank für eure Hilfe

Grüße
Benni
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Tode am 11.03.16 - 08:51:37
Ein Notes- Crash produziert immer einen NSD im Verzeichnis "IBM_TECHNICAL_SUPPORT" im Data- Verzeichnis des Benutzers.

Was Du hier gepostet hast, könnte der Anfang eines solchen NSD- Files sein, aber die wesentlichen Informationen fehlen...
Das meinte ich mit
wenn man den NSD- Prozess nicht abwürgt und ihn wirklich bis zum Ende laufen lässt
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 11.03.16 - 09:09:15
Also ich habe nichts abgebrochen, und wenn dann unabsichtlich...Das war der Schluss des Protkolls, da kommt ziemlich viel davor.

Ich habe den Teil gepostet, weil hier halt Errors vorkamen (Ich kenne mich damit halt leider überhaupt nicht aus)

Du meintest, dass ich hier aus der Datei nicht alles online stellen soll, aufgrund der System-Daten.

Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Tode am 11.03.16 - 09:57:55
Dann suche doch mal bitte im NSD nach "FATAL" und poste den gesamten Stack des FATAL- Threads. Das könnte schon ausreichen, um die Ursache zu finden.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 11.03.16 - 10:41:58
So sind aber mehrere "Fatal":




############################################################
### thread 1/6: [ NLNOTES:  1e14:  0b58] FATAL THREAD (Panic)
### FP=0x00173784, PC=0x7754f971, SP=0x00173718
### stkbase=0x00180000, total stksize=241664, used stksize=51432
### EAX=0x00000000, EBX=0x00000000, ECX=0x00000000, EDX=0x00000000
### ESI=0x00000218, EDI=0x00173760, CS=0x00000023, SS=0x0000002b
### DS=0x0000002b, ES=0x0000002b, FS=0x00000053, GS=0x0000002b Flags=0x00000246
############################################################
 
############################################################
### PASS 2 : FATAL THREAD (Panic) with STACK FRAMES [ NLNOTES:  1e14:  0b58]
############################################################

############################################################
### PASS 3 : FATAL THREAD (Panic) with PARAMETER DATA [ NLNOTES:  1e14:  0b58]
############################################################

Passt das so?



Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Tode am 11.03.16 - 10:56:23
Der erste Treffer ist der richtige, und die relevante Information ist genau in dem Teil, den Du ausgelassen hast. SO sieht ein Crash mit Stack aus:
Zitat
############################################################
### FATAL THREAD 8/22 [ NLNOTES:  1564:  1b84]
### FP=0x09f4ce54, PC=0x5722c6df, SP=0x09f4ce44
### stkbase=09f50000, total stksize=262144, used stksize=12732
### EAX=0x0002fff8, EBX=0x00b3c0b8, ECX=0x00b3c0b8, EDX=0x00000000
### ESI=0x00b3c0b8, EDI=0x0002fff8, CS=0x00000023, SS=0x0000002b
### DS=0x0000002b, ES=0x0000002b, FS=0x00000053, GS=0x0000002b Flags=0x00010246
Exception code: c0000005 (ACCESS_VIOLATION)
############################################################
@[ 1] 0x5722c6df nnotes.LSSiMEMMGR::OSHeapBlkFree+239 (2fff8,0,0,0)
@[ 2] 0x5724a54e nnotes.LSSiMEMMGR::BlkFree+46 (b3c0b8,30000,e19c2c4,0)
@[ 3] 0x5729fb88 nnotes.LSSiSAM::BlkFree+40 (b3d1e4,30000,121f7e70,9f4ceb4)
@[ 4] 0x58299635 nnotes.LSsInstance::SAMBlkFree+37 (30000,e19c060,121f7e70,e19c060)
@[ 5] 0x573389e4 nnotes.LSsChunkMgr::Destruct+52 (e19c2c4,0,9f4cedc,57337866)
@[ 6] 0x57337b22 nnotes.LSsModule::Destruct+130 (e19c060,121f7e70,0,177edc18)
@[ 7] 0x57337866 nnotes.LSsInstance::DeleteModule+182 (121f7e70,e19c060,0,0)
@[ 8] 0x57338989 nnotes.LSsInstance::ModuleUnload+121 (121f7e70,e19c060,5cef818,0)
@[ 9] 0x59fa4765 nnotesws.unloadModuleAndREFByModules+197 (177edc18,e19c060,5cebd18,1)
@[10] 0x59fa58cb nnotesws.LSEESessionInstance::checkSyntax+651 (114c0cd0,1019be08,3d74f,1)
@[11] 0x59fa715a nnotesws.CLSEditorRequest::ExecuteExt+1178 (9f4f8fc,9f4fa70,9f4fa68,1019be08)
@[12] 0x6e55250b nxpm.CXmlRequestProcessor::ProcessRequestExt+795 (45590ec,114c0dc0,1019be08,3d74f)
@[13] 0x59b14571 nnotesws.WCTBackgroundMsgThread+625 (0,0,5736fde0,0)
@[14] 0x5736fec1 nnotes.ThreadWrapper@4+225 (0)
 [15] 0x74ba3744 KERNEL32.BaseThreadInitThunk+36 (0)
 [16] 0x77ab9e54 ntdll.RtlSetCurrentTransaction+212 (ffffffff)
 [17] 0x77ab9e1f ntdll.RtlSetCurrentTransaction+159 (5736fde0)
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 11.03.16 - 11:00:17
Oh man...Ich fühle mich doof :( Vielen Dank für deine Geduld



############################################################
### thread 1/6: [ NLNOTES:  1e14:  0b58] FATAL THREAD (Panic)
### FP=0x00173784, PC=0x7754f971, SP=0x00173718
### stkbase=0x00180000, total stksize=241664, used stksize=51432
### EAX=0x00000000, EBX=0x00000000, ECX=0x00000000, EDX=0x00000000
### ESI=0x00000218, EDI=0x00173760, CS=0x00000023, SS=0x0000002b
### DS=0x0000002b, ES=0x0000002b, FS=0x00000053, GS=0x0000002b Flags=0x00000246
############################################################
 [ 1] 0x7754f971 ntdll.ZwWaitForSingleObject+21 (218,493e0,0,72c6fdd0)
 [ 2] 0x76c81194 kernel32.WaitForSingleObjectEx+67 (218,493e0,0,173f64)
 [ 3] 0x76c81148 kernel32.WaitForSingleObject+18 (218,493e0,72c62ad0,1743b7)
@[ 4] 0x5768a444 nnotes.FRSendCommandToService+1268 (173f88,174388,1743b7,1)
@[ 5] 0x5768b869 nnotes.OSRunExternalScript@8+1241 (174700,1)
@[ 6] 0x5768bf5c nnotes.FRTerminateWindowsResources+1260 (1,1010,1,0)
@[ 7] 0x5768c652 nnotes.OSFaultCleanupExt@24+1154 (24e6a70,1010,0,0,0,174b28)
@[ 8] 0x5768cbda nnotes.OSFaultCleanup@12+26 (0,1010,0)
@[ 9] 0x576c8e94 nnotes.OSNTUnhandledExceptionFilter@4+276 (178368)
@[10] 0x5768d1f3 nnotes.Panic@4+883 (5683051c)
@[11] 0x55c91b9b nnotesws.NEMInit@36+6363 (990000,56c418,0,0,0,17936c,f10f10,ffffffff,0)
@[12] 0x00991db5 NLNOTES.WinMain@16+2565 (990000,0,632d7d,0)
@[13] 0x00992fa4 NLNOTES.__tmainCRTStartup+336 (fffde000,17fbe0,77569a02,fffde000)
 [14] 0x76c8338a kernel32.BaseThreadInitThunk+18 (fffde000,77e4e4ea,0,0)
 [15] 0x77569a02 ntdll.RtlInitializeExceptionChain+99 (9930e7,fffde000,0,0)
 [16] 0x775699d5 ntdll.RtlInitializeExceptionChain+54 (9930e7,fffde000,0,0)


Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Tode am 11.03.16 - 13:41:04
SO: Das ganze Crashed also in "ntdll.RtlInitializeExceptionChain", hat also was mit dem Richtextitem zu tun, in das Du die Attachments schreibst.
Du schreibst die Attachments "irgendwohin" nämlich in ein Item "Attachments". Das ist im Client nicht vorgesehen, deshalb müssen die Attachments zur Anzeige in ein anderes Item verschoben werden, vermutlich knallt es dabei.

Nimm das "richtige" Item, das könnte das Problem schon beheben. Statt
Code
Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
schreibe
Code
Set AttachMe = doc.CREATERICHTEXTITEM("Body")
und berichte.

Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 11.03.16 - 15:12:12
ich bekomme immer noch eine Fehlermeldung, dass ein Fehler aufgetreten ist und Lotus Notes schließt sich daraufhin.

Allerdings kommt bei dem NSD-Report keine "Fatal"Meldung..
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 11.03.16 - 15:13:58
Hast du den Code schon auf die Backend-Klassen umgestellt?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 11.03.16 - 15:15:50
Backend-Klassen?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 11.03.16 - 15:17:44
Verwende bitte NotesDocument anstatt NotesUiDocument.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 11.03.16 - 15:36:43
Das Problem hatte ich am Anfang, dass ich aus nicht Kenntniss wohl ein mix gebastelt hatte.
Tode hat mich dann darauf aufmerksam gemacht.

weil Call doc.GOTOFIELD("Body") wohl nur für uidocument  geht und ich dafür kein anderen Code gefunden habe, habe ich alles auf UIdocument umgestellt...

Ich würde  es gerne auch umstellen, wenn es dann geht, weiß aber nicht wie dies spezeill umgeschrieben wird.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 11.03.16 - 15:48:25
Du machst wohl Notes noch nicht lange ;)

GotoField brauchst du nicht, Text in RichText schreiben geht mit:
AttachMe.appendtext( "text")

Schau dir bitte die Methoden der Notes-Klassen im Notes-Designer an, hier gibt es eine ausführliche Hilfe mit Beispielen.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 14.03.16 - 09:05:28
Nein, mache ich nicht, eigentich zum ersten Mal und bei Makro bin ich auch Anfänger...

Das kann jetzt ein bisschen Zeit kosten, bis ich da mal durch bin, also nicht wundern, wenn ich eine Weile brauche ...

Grüße
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 14.03.16 - 14:29:16
ich habe es versucht, und stocher ehrlich gesagt ein bisschen im dunkeln und bin total am verweifeln...weil ich es absolut net hinbekomme...
Mit Uidocument konnte ich wenigstens ohne Ahnag versenden, jetzt schließt sich Notes immer gleich..
Wie gesagt, bin ziemlicher Anfänger, aber was mach ich denn falsch?


Option Explicit
Sub CommandButton1_Click()

       If MsgBox("Sollen die E-Mail(s) gesendet werden?", vbQuestion + vbYesNo, _
         "Löschen bestätigen") = vbYes Then
     
       Dim sText As Variant
       Dim sEmpfang As Variant
       Dim sBetrifft As String
       Dim session As Variant
       Dim db As Variant
       Dim doc As Variant
       Dim rtobject As Variant
       Dim ws As Variant
       Dim x As Integer
       Dim Msg As Integer
       Dim sKopie As String, AttachMe As Variant
       Dim user As String, server As String, mailfile As String, sBlindKopie As String
       Dim vAn As Variant, vCopy As Variant, vBlind As Variant
       Dim derAnhang As Variant, derAnhang2 As Variant, derAnhang3 As Variant
        Dim sAnhang As String, sAnhang2 As String, sAnhang3 As String
       Dim sAnrede As Variant
       Dim sVorname As Variant
       Dim sNachname As Variant
       Dim tempAnrede As Variant
       Dim i As Long
       
         
       ' Verbindung zum Mailserver aufbauen
       Set session = CreateObject("notes.notessession")                      ' Notes muss gestartet _
     sein
       user = session.UserName
       server = session.GetEnvironmentString("MailServer", True)
       mailfile = session.GetEnvironmentString("MailFile", True)
       Set db = session.GetDatabase(server, mailfile)                        ' Emails zusammenbauen _
     und rausschicken
       For i = 12 To cells(Rows.Count, 9).End(xlUp).Row
         If cells(i, 10) <> "ja" Then                                        'keine E-Mail, wenn "ja" _
      in Spalte "geantwortet"
           vAn = cells(i, 9)
           sAnrede = Range("e" & i)                                          'Anrede aus Spalte e
           Select Case (sAnrede)
             Case "Herr":                                                    'Im Fall, dass Anrede " _
     Herr" in Spalte e, dann schreibe "Sehr geehrter Herr"
               tempAnrede = "Sehr geehrter Herr"
             Case "Frau":
               tempAnrede = "Sehr geehrte Frau"                              'Im Fall, dass Anrede " _
     Frau" in Spalte e, dann schreibe "Sehr geehrte Frau"
             Case "Sehr geehrte Damen und Herren":
               tempAnrede = "Sehr geehrte Damen und Herren"
             Case "Dear":
               tempAnrede = "Dear"                                           'Im Fall, dass Anrede " _
     Dear" in Spalte e, dann schreibe "Dear"
           End Select
         sVorname = Range("f" & i)                                         'Vorname aus Spalte f
         sNachname = Range("g" & i)                                        'Nachname aus Spalte g
           If Sheets("Tabelle1").Range("h" & i).Value = "Deutsch" Then       'wenn in Spalte "h" " _
     Deutsch" als Sprache steht, dann
             sText = tempAnrede & " " & sNachname & "," & Chr(10) & Chr(10) & Range("B4") & Chr(10) _
         'dann nehme die Anrede + Nachnamen + den Text aus Zelle "B4"
           Else
             sText = tempAnrede & " " & sVorname & "," & Chr(10) & Chr(10) & Range("D4") & Chr(10) _
         'sonst nehme Anrede + Vorname + Text aus Zelle "D4"
           End If
         sBetrifft = Range("B3")                                           ' Überschrift in Zelle b3
         sKopie = Range("D3")                                              ' Kopie der E-MAil an e- _
     Mail Adresse aus Zelle "D3"
         sBlindKopie = Mid(vAn, 3)                                         ' schickt an alle Empfä _
     nger eine Blindkopie
         sAnhang = Range("B6")                                             ' Link aus Zelle b6
         sAnhang2 = Range("B7")                                            ' Link aus Zelle b7
         sAnhang3 = Range("B8")                                            ' Link aus Zelle b8
         If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ")              ' cc Array
         If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")   'bcc Array
           Set doc = db.createdocument()
           doc.Form = "Memo"
           doc.sendto = vAn
           If Len(sKopie) > 0 Then doc.CopyTo = vCopy                        'cc Array
            doc.Subject = sBetrifft                                          ' die Betreffzeile
           doc.SAVEMESSAGEONSEND = True
           doc.PostedDate = Now
         'Die Zeilen mit dem Anhang nach hier oben verschieben, ist wichtig die Reihenfolge
         ' *******************************************
           If sAnhang <> "" Then
             Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
             Set derAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang)
             Set derAnhang2 = AttachMe.EMBEDOBJECT(1454, "", sAnhang2)
             Set derAnhang3 = AttachMe.EMBEDOBJECT(1454, "", sAnhang3)
             doc.CREATERICHTEXTITEM ("Attachment")
             ',"Attachment" wird nicht benötigt
           End If
         '*******************************
           Set ws = CreateObject("Notes.NotesUIWorkspace")
           ' **durch das öffnen des Dokumentes durch NotesWorkspace**
           ' **erreicht man das die eingestellte Signatur aus den **
           ' **Lotus Notes Optionen eingefügt wird
           Call ws.EDITDOCUMENT(True, doc)
           Set doc = ws.CURRENTDOCUMENT
           Call doc.insertText(sText)
           Call doc.Send(True)
           Call doc.Close               'Schliesst das gesendete Formular
           Call doc.Save(True, True)
           Set AttachMe = Nothing
           Set derAnhang = Nothing
           Set ws = Nothing
           Set doc = Nothing
         
         End If
       Next i
        ' Verbindung zum Mailserver löschen
Aufraeumen:
         On Error Resume Next
         Set db = Nothing
         Set session = Nothing
         Exit Sub
Fehler:
         Resume Aufraeumen
     End If
     End Sub
     


Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Peter Klett am 14.03.16 - 15:17:30
Am besten, Du legst das ganze Script zur Seite und fängst noch einmal von vorne an. Dabei begrenzt Du Dich auf die elementarsten Funktionen. Erst wenn die funktionieren, baust Du weiter. Dein Script ist so lang, dass Du da sicherlich den Überblick verloren hast. Vergiss dabei zuerst die ganzen Daten, die in Excel hinterlegt sind, die berücksichtigst Du erst, wenn Dein Kernproblem, der Versand der Mail, gelöst ist.

Folgende Schritte könnte ich mir dabei vorstellen, wobei jeder weitere Schritt natürlich auf den erfolgreich gelösten vorigen  Schritt aufbaut

Schritt 1

Erstellen einer Mail und Versenden an einen im Script hart definierten Empfänger

Schritt 2

Versenden der Mail über das Frontend, damit die Signatur eingebunden wird

Schritt 3

Ändern des Inhaltes der Mail

Schritt 4

Anhängen von Dateien



Bis zu diesem Schritt ist das Script noch sehr übersichtlich, also auch hier im Forum recht leicht zu lesen. Im übrigen solltest Du die Hinweise, die Du hier bekommst, auch berücksichtigen, denn es fördert nicht gerade die Hilfsbereitschaft, wenn ein abgegebener Tipp auch in dem danach geposteten Script nicht umgesetzt wurde, dann entsteht hier nämlich der Eindruck, als würde es Dich nicht interessieren.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Tode am 14.03.16 - 16:20:16
+1 für Peters ausführungen. Ausserdem: Bitte benutze die Code- Tags für das posten von Code... Das macht den Code wesentlich besser lesbar.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 14.03.16 - 19:33:29
Verursacht "Call doc.Send(True)" den Notes-Client-Absturz? Wenn Ja, dann fallen mir zwei Möglichkeiten ein, eine Notes-Mail im Frontend zu versenden ohne im Excel ein uiDoc.send aufzurufen. Davon mal abgesehen kann man auch im Backend die Signatur hinzufügen ;) Was nach wie vor meine Lösung wäre, aber OK ...

Von den 2 Möglichkeiten gibt es einen der recht einfach umzusetzen ist:
Code
AppActivate "IBM Notes"
SendKeys "%1"
Ggf. musst du die Parameter noch anpassen oder fügst einen weiteren AppActivate-Aufruf zum Zurückspringen hinzu.

Und taste dich heran, wie es dir Peter empfohlen hat, das ist ein guter Tipp.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 15.03.16 - 11:42:06
entschuldigt bitte, wenn das so rüber kommt, als ob ich eure Ratschläge nicht verwende. Wie gesagt ich bin Anfänger, aber versuche immer alles umzusetzen.

Ich bin ja froh, dass ich Hilfe bekomme.

Ich habe jetzt auch versucht wieder von vorne anzufangen und das ohne Uidocument.

Code
Option Explicit
 
Sub lotus()

 Dim sText As String, sEmpfang As String, sBetrifft As String
 Dim session As Object, db As Object, doc As Object, rtobject As Object
 Dim rtitem As Object, sKopie As String
 Dim AttachMe As Object, DerAnhang As Object
 Dim user As String, server As String
 Dim mailfile As String, sBlindKopie As String
 Dim vAn As Variant, vCopy As Variant
 Dim vBlind As Variant, sAnhang As String
 
 
 On Error GoTo Fehler
 

 sEmpfang = "test@test.de" ' bei mehreren Email Adressen durch " ; " getrennen
 sBetrifft = "Test"                 ' die Betreffzeile
 sText = "funktioniert es? "                            ' Testtext
 sKopie = " "                       ' bei mehreren Email Adressen durch " ; " getrennen
 sBlindKopie = " "                  ' bei mehreren Email Adressen durch " ; " getrennen
 vAn = Split(sEmpfang, " ; ")       ' Empfänger Array
 
 sAnhang = ""                       ' richtiger Pfad Muss natürlich richtig gesetzt werden
 
 If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") 'cc Array
 If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")  'bcc Array
 
 
 Set session = CreateObject("notes.notessession") ' Notes muss gestartet sein
 user = session.UserName
 server = session.GetEnvironmentString("MailServer", True)
 mailfile = session.GetEnvironmentString("MailFile", True)
 
 Set db = session.getdatabase(server, mailfile)
 Set doc = db.createdocument()
 
 doc.Form = "Memo"
 doc.SendTo = vAn                                       ' an array
 If Len(sKopie) > 0 Then doc.copyto = vCopy             'cc Array
 If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind  'bcc Array
 
 doc.Subject = sBetrifft ' die Betreffzeile
 Set rtitem = doc.CREATERICHTEXTITEM("body")
 Call rtitem.APPENDTEXT(sText)
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now
 
 ' *******************************************
 If sAnhang <> "" Then
  Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
  Set DerAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang, "Attachment")
 End If
 
 
 '*******************************
 
 Call doc.Send(False)
 
Aufraeumen:
 On Error Resume Next
 Set rtitem = Nothing
 Set AttachMe = Nothing
 Set DerAnhang = Nothing
 Set db = Nothing
 Set doc = Nothing
 Set session = Nothing
 Exit Sub
Fehler:
 Resume Aufraeumen
End Sub


so bekomme ich es halb hin, das heißt e-Mail geht, Anhang kann mit versendet werden, nur keine Signatur. Also habe ich folgendes probiert

Code
Option Explicit
 
Sub lotus()

 Dim sText As String, sEmpfang As String, sBetrifft As String
 Dim session As Object, db As Object, doc As Object, rtobject As Object
 Dim rtitem As Object, sKopie As String
 Dim AttachMe As Object, DerAnhang As Object
 Dim user As String, server As String
 Dim mailfile As String, sBlindKopie As String
 Dim vAn As Variant, vCopy As Variant
 Dim signature As Object
 Dim vBlind As Variant, sAnhang As String
 
 
 On Error GoTo Fehler
 

 sEmpfang = "test1@test.de" ' Einträge durch " ; " getrennt
 sBetrifft = "Test"                 ' die Betreffzeile
 sText = "funktioniert es? "                            ' Testtext
 sKopie = " "                       ' Einträge durch " ; " getrennt
 sBlindKopie = " "                  ' Einträge durch " ; " getrennt
 vAn = Split(sEmpfang, " ; ")       ' Empfänger Array
 
 sAnhang = ""                       ' richtiger Pfad Muss natürlich richtig gesetzt werden
 
 If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") 'cc Array
 If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")  'bcc Array
 
 
 Set session = CreateObject("notes.notessession") ' Notes muss gestartet sein
 user = session.UserName
 server = session.GetEnvironmentString("MailServer", True)
 mailfile = session.GetEnvironmentString("MailFile", True)
 
 Set db = session.getdatabase(server, mailfile)
 Set doc = db.createdocument()
 
 doc.Form = "Memo"
 doc.SendTo = vAn                                       ' an array
 If Len(sKopie) > 0 Then doc.copyto = vCopy             'cc Array
 If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind  'bcc Array
 
 doc.Subject = sBetrifft ' die Betreffzeile
 signature = db.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
 Set rtitem = doc.CREATERICHTEXTITEM("body")
 Call rtitem.APPENDTEXT(sText & signature)
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now
 
 ' *******************************************
 If sAnhang <> "" Then
  Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
  Set DerAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang, "Attachment")
 End If
 
 
 '*******************************
 
 Call doc.Send(False)
 
Aufraeumen:
 On Error GoTo Fehler
 Set rtitem = Nothing
 Set AttachMe = Nothing
 Set DerAnhang = Nothing
 Set db = Nothing
 Set doc = Nothing
 Set session = Nothing
 Exit Sub
Fehler:
 Resume Aufraeumen
End Sub

hier passiert allerdings überhaupt nichts...sobald ich

Code
signature = db.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)

einfüge.

Wieso?

Und verliert bitte nicht die Geduld, ich gebe mir Mühe :)

@jBubbleBoy : ich nehme erstmal Peters Vorschlag an, und fange neu an
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: schroederk am 15.03.16 - 13:17:39
Bitte gewöhne Dir gleich von Anfang an an, eine vernünftige Fehlerbehandlung einzubauen.
Mit einem OnError Resume kommst Du garantiert nicht weiter. Wenn ein Fehler auftritt, soll dieser doch auch angezeigt werden, oder nicht?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 15.03.16 - 16:28:46
Die Methode GetProfileDocument besitzt 2 Parameter, aber da bist du mit deiner überarbeiteten Fehlerbehandlung schon selber darauf gekommen, oder?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 16.03.16 - 10:12:58
Ich habe jetzt den On Error goTo Fehler eingebaut.
Und habe folgende Meldung erhalten

Code
Fehler in Sub Fehler 0 erste Division
Fehlernummer: -2147417851
Fehlerbeschreibung: Automatisierungsfehler
Ausnahmefeler des Servers

Damit ich nicht zwei Parameter habe, habe dann ich folgendes geändert:
Code
 doc.Subject = sBetrifft ' die Betreffzeile
 stSignature = db.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
 Set rtitem = doc.CREATERICHTEXTITEM("body")
 Call rtitem.APPENDTEXT(sText & stSignature)
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now

und bekomme folgende Fehlermeldung

Code
Fehler:
 MsgBox "Fehler in Sub Fehler 0 Erste Division" & vbCrLf _
 & "Fehlernummer: " & Err.Number & _
 vbCrLf & "Fehlerbeschreibung: " & Err.Description
Und bekomme folgende Meldung:
Code
Fehler in sub Fehler 0 erste division
Fehlernummer: 0
Fehlerbeschreibung:

Grüße
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 16.03.16 - 11:09:52
Das man in Excel keine Fehler-Zeilennummern ausgeben kann ist ein echter Nachteil (geht in Notes besser) aber zum Glück kennst du ja deine Problemzeile.

Deine Code-Änderung bei "Damit ich nicht zwei Parameter habe, habe dann ich folgendes geändert:" habe ich nicht verstanden. Parameter ist bei mir ein Übergabewert und bei dir stimmt die Anzahl (2 anstatt 1) nicht überein. Manchmal gibt es auch optionale Parameter, ist hier aber nicht der Fall.
Schau dir in der NotesHilfe die Methode "GetProfileDocument" genau an.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Andrew Harder am 16.03.16 - 11:59:33
Der zweite Parameter ist optional. Das steht auch so in der Hilfe.
Nun gut, er sollte nicht stören...

Splitte die Fehlerzeile mal, nicht das der Fehler an einer unerwarteten Stelle liegt:
Code
calendarProfile = db.getProfileDocument("CalendarProfile", "")
signature = calendarProfile.getItemValue("Signature")(0)
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 16.03.16 - 12:44:22
Das stimmt - da hab ich mich vertan ;) ein Parameter reicht hier aus.
Dann steht eventuell im Profildokument nichts ... ?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 16.03.16 - 13:29:46
so..:)

Bei

Code
 doc.Subject = sBetrifft ' die Betreffzeile
 calendarProfile = db.GetProfileDocument("CalendarProfile")
 Signature = calendarProfile.GetItemValue("Signature")(0)
 Set rtitem = doc.CREATERICHTEXTITEM("body")
 Call rtitem.APPENDTEXT(sText & Signature)
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now

kommt folgende Fehlermeldung

Code
Fehlernummer: 91
Fehlerbeschreibung: Objektvariable oder With-Blockvariable nicht festgelegt

Also liegt es wohl an der Zeile..

Bin leider langsam echt am verzweifeln:(

Noch einmal eine andere Frage, was spricht denn genau gegen ein UiDocument?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 16.03.16 - 13:44:36
uiDoc.send hat deinen Notes-Client zum Absturz gebracht.

Hier scheint eine Variable nicht gesetzt zu sein, bist du deinen Code schon mal im Excel-Debugger durchgegangen?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 16.03.16 - 16:23:30
also meinst du das bringt nichts, das ganze mit UiDocument noch einmal neu aufzubauen?

Ja, das habe ich gemacht und habe 3 Haltepunkte gesetzt.
Und bekomme bis stSignature keinen Fehler, bis dahin läuft der code wohl ohne Fehler durch
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 16.03.16 - 16:39:56
Es war deine Aussage, das der Notes-Client abstürzt und das Problem wurde noch nicht gelöst, oder hast du das mal ausprobiert?  =>
Code
AppActivate "IBM Notes"
SendKeys "%1"

Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Andrew Harder am 16.03.16 - 16:54:46
Code
 doc.Subject = sBetrifft ' die Betreffzeile
 calendarProfile = db.GetProfileDocument("CalendarProfile")
 Signature = calendarProfile.GetItemValue("Signature")(0)
 Set rtitem = doc.CREATERICHTEXTITEM("body")
 Call rtitem.APPENDTEXT(sText & Signature)
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now

kommt folgende Fehlermeldung

Code
Fehlernummer: 91
Fehlerbeschreibung: Objektvariable oder With-Blockvariable nicht festgelegt

Die Fehlermeldung weist darauf hin, das eine der benutzten Variablen kein Objekt enthält.
Finde die Fehlerzeile, dann findest Du die entsprechende Variable.
Das war auch der Grund für den Split, wenn Du mehrere Variablen in einer Zeile nutzt, verlierst Du Zeit bei der Fehlersuche.

Wenn Du aber nach jeder der Zeilen mit Debug.Print etwas ausgibst, , dann ist die nächste Ausgabe die nicht kommt die Fehlerzeile.
Falls Du Probleme mit Debug.Print hast, nimm notfalls die Messagebox, Hauptsache die Fehlerzeile wird gefunden.

Ist schon sehr umständlich dieses VBA, wäre das ein Knopf in Notes der auf Excel zugreift, dann würde die Fehlerzeile brav mit ausgegeben.
Keine Ahnung was man sich bei Microsoft da gedacht hat.

Klingt jetzt etwas komisch, aber: Bist Du sicher, das Du im Netz bist und auch in Notes nicht auf Insel stehst?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 16.03.16 - 17:35:16
ja, APPActivate "IBM NOTES" habe ich probiert, aber habe es net hinbekommen..Aber kann ja da auch noch einmal ganz von vorne anfangen, falls ich (bzw. eher Ihr/wird) das anders nicht hinbekommen.

Mein Lotus Notes ist online, d.h ich muss ja im Netz sein. Meine Id liegt ja auch im Netzwerk.

Ich muss leider nur jetzt los, ich probiere das debug.print morgen mal :)
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 16.03.16 - 18:20:55
Weißt du was "APPActivate" macht?
Der 1. Google-Treffer passt schon und gibt dir die Antwort ;)
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 17.03.16 - 11:05:47

Ich habe es jetzt mal mit Debug.Print versucht.

Code
Option Explicit
 
Sub lotus()

 Dim sText As String, sEmpfang As String, sBetrifft As String
 Dim session As Object, db As Object, doc As Object, rtobject As Object
 Dim rtitem As Object, sKopie As String
 Dim AttachMe As Object, DerAnhang As Object
 Dim user As String, server As String
 Dim mailfile As String, sBlindKopie As String
 Dim vAn As Variant, vCopy As Variant
 Dim vBlind As Variant, sAnhang As String
 Dim stSignature As String
 
 
 On Error GoTo Fehler
 

 sEmpfang = "test" ' Einträge durch " ; " getrennt
 Debug.Print sEmpfang
 sBetrifft = "Test"                 ' die Betreffzeile
 Debug.Print sBetrifft
 sText = "funktioniert es? "                            ' Testtext
 Debug.Print sText
 sKopie = " "                       ' Einträge durch " ; " getrennt
 Debug.Print sText
 sBlindKopie = " "                  ' Einträge durch " ; " getrennt
 Debug.Print sBlindKopie
 vAn = Split(sEmpfang, " ; ")       ' Empfänger Array
 Debug.Print vAn
 sAnhang = ""                       ' richtiger Pfad Muss natürlich richtig gesetzt werden
 Debug.Print sAnhang
 If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") 'cc Array
 If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")  'bcc Array
 
 
 Set session = CreateObject("notes.notessession") ' Notes muss gestartet sein
 Debug.Print session
 user = session.UserName
 Debug.Print user
 server = session.GetEnvironmentString("MailServer", True)
 Debug.Print server
 mailfile = session.GetEnvironmentString("MailFile", True)
 Debug.Print mailfile
 Set db = session.getdatabase(server, mailfile)
 Set doc = db.createdocument()
 
 doc.form = "Memo"
 Debug.Print doc.form
 doc.sendTo = vAn                                       ' an array
 Debug.Print doc.sendTo
 If Len(sKopie) > 0 Then doc.copyto = vCopy             'cc Array
 If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind  'bcc Array
 
 doc.Subject = sBetrifft ' die Betreffzeile
 Debug.Print doc.Subject
 stSignature = db.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
 Debug.Print stSignature
 Set rtitem = doc.CREATERICHTEXTITEM("body")
 Debug.Print rtitem
 Call rtitem.APPENDTEXT(sText & stSignature)
 Debug.Print rtitem
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now
 
 ' *******************************************
 If sAnhang <> "" Then
  Set AttachMe = doc.CREATERICHTEXTITEM("Attachment")
  Set DerAnhang = AttachMe.EMBEDOBJECT(1454, "", sAnhang, "Attachment")
 End If
 
 
 '*******************************
 
 Call doc.Send(False)
 
Fehler:
 MsgBox "Fehler in Sub Fehler 0 Erste Division" & vbCrLf _
 & "Fehlernummer: " & Err.Number & _
 vbCrLf & "Fehlerbeschreibung: " & Err.Description

 
Aufraeumen:
 On Error GoTo Fehler
 Set rtitem = Nothing
 Set AttachMe = Nothing
 Set DerAnhang = Nothing
 Set db = Nothing
 Set doc = Nothing
 Set session = Nothing
 Exit Sub
 
End Sub

Allerdings springt er immer . wenn ich bei sAnhang ankomme, direkt nach unten und bringt mir die Fehlermeldung (durch MsgBox)

Code
Fehlernummer:13
Fehlerbeschreibung: Typen unverträglich

Die anderen Debug.Print bzw Haltepunkte werden übersprungen...wieso?
Hab ich mal wieder was flasch gemacht?

@jBuubleboy: Dadurch stürzt LN auch ab. Musste es aber auf AppActivate (IBM Notes Mail) ändern
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Micha B am 17.03.16 - 12:08:12
Zitat
Meine Id liegt ja auch im Netzwerk.
Was bedeutet das? Liegt Dein Data Verzeichnis auf einem Netzlaufwerk? Wenn ja, solltest Du als erstes Notes lokal nutzen, vielleicht liegt ja da schon der Hund begraben.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 17.03.16 - 12:17:34
ich kann Lotus Notes leider nur "online" benutzen, sprich meine ID, usw liegt auf dem Firmennetzwerk. Das ist bei uns irgendwie Vorgabe...
Kann das also nicht testen...
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Andrew Harder am 17.03.16 - 15:22:13
ich kann Lotus Notes leider nur "online" benutzen, sprich meine ID, usw liegt auf dem Firmennetzwerk. Das ist bei uns irgendwie Vorgabe...
Kann das also nicht testen...
Du kannst ein File vom Netz nicht auf lokal kopieren?

Also ist die Fehlerzeile diese hier:
Code
Set session = CreateObject("notes.notessession") ' Notes muss gestartet sein
?

Wenn ja, dann hau die Prints raus und mach eine vor der Zeile und eine nach der Zeile.
Dann musst Du nur noch hinbekommen das diese Zeile funktioniert.

Um den Spass, weil es bei Windows mit DDLs auch so ist, ersetze die Zeile mal mit:
Code
Set Session = CreateObject("Notes.NotesSession")

Hast Du Dein Notes gestartet, oder ist es aus?

EDIT:
Falls alles nicht hilft kannst Du auch Notes über COM ansprechen
Code
Set session = CreateObject("Lotus.NotesSession")
Ist persönlich mein Favorit, aber UI Klassen kann man da nicht benutzten.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 17.03.16 - 15:33:49
Nein, das kann bzw. darf ich nicht... und ja Lotus Notes ist gestartet.

Wenn ich es über

Code
Set session = CreateObject("Lotus.NotesSession")
anspreche, kommt folgende Fehlermeldung

Code
 Fehlernummer: -2147217013
Fehlerbeschreibung: Die Methode 'Username' für das Objekt 'ISession' ist fehlgeschlagen
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 18.03.16 - 08:47:15
Zwischen "doc.PostedDate = Now" und "Fehler:" nimm mal diesen Code:
Code
doc.PostedDate = Now
If sAnhang <> "" Then 
  Call rtitem.EMBEDOBJECT(1454, "", sAnhang)
end if
rtitem.saveToDisk = True

Call doc.Send(False)

exit sub
Fehler:

Erstelle und verwende als Anhang ein einfaches Beispiel (zum Testen), z.B. "C:\mein.txt".

In Excel, im Debugger können einzelne Zeilen mit F8 durchlaufen werden, eine gute Methode um Variablen zu überwachen und Fehler zu finden.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 21.03.16 - 08:22:23
Guten Morgen,

so senden mit Anhang geht ohne Fehlermeldung, beim ersten Mal. Dann kommt wieder eine Fehlermeldung.

Code
Fehlerbeschreibung: Automatisierungsfehler
Ausnahmefehler des Servers

Aber die Signatur ist immer noch nicht dabei..
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 21.03.16 - 17:59:15
Bei welcher Excel-Code-Zeile kommt der Fehler?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 29.03.16 - 08:14:23
soory für die späte Antwort.

Call doc.Send(False)

Erst in der Zeile :(
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 29.03.16 - 10:08:24
mach mal vor dem Send ein Save, und berichte ob und wo der Absturz stattfindet:
Code
call doc.save(true, false)

Eine einfache, lokal und fest hinterlegte Datei erzeugt den gleichen Fehler, spricht Absturz erst beim 2. Senden?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 29.03.16 - 10:19:24
So habe ich angepasst.

Call doc.Save(True, False)
Call doc.Send(False)

Die Datei wird angehängt, sowohl eine lokale, als auch eine Datei auf dem Server.
Die Fehlermeldung kommt immer noch erst ab
Call doc.send(false)

Aber immer noch keine Signatur und die Fehlernummer bzw. Fehlerbeschreibung ist leer.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: koehlerbv am 29.03.16 - 10:56:50
Der Inhalt des Items SendTo ist korrekt gefüllt (gültige interne oder Internet-Mailadresse)? Und für eine Signatur finde ich keinen Code, der bisher gepostet wurde.

Bernhard
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 29.03.16 - 11:00:54
ja, die ist gültig. Die E-Mail kommt auch an, sobald ich die leere Fehlermeldung wegdrücke.

anbei der Code für die Signatur


doc.Subject = sBetrifft ' die Betreffzeile
 stSignature = db.GetProfileDocument("CalendarProfile").GetItemValue("Signature")(0)
 Set rtitem = doc.CREATERICHTEXTITEM("body")
 Call rtitem.APPENDTEXT(sText & stSignature)
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now


Viele Grüße
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: koehlerbv am 29.03.16 - 11:05:24
anbei der Code für die Signatur

Bin kurz mal weg (zum Optiker ...). Sorry.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 29.03.16 - 11:07:32
da war ich letzte Woche auch schon.. viel Spaß

Allerdings hast du den Code nicht geschrieben :)
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 29.03.16 - 12:38:29
Zitat
Die E-Mail kommt auch an, sobald ich die leere Fehlermeldung wegdrücke.
Welche Fehlermeldung drückst du weg?

Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 29.03.16 - 14:50:34
die Fehlmermeldung, die nicht definiert ist:

Fehlernummer: 0
Fehlerbeschreibung:
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: DerVissi am 29.03.16 - 15:04:52
Hast du vielleicht vergessen auszusteigen vor dem Errorhandling?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 29.03.16 - 15:24:21
Habe den "Fehler" bzw. die Fehler MsgBox hinter aufräumen gesetzt. Das funktioniert jetzt, danke.

Nur die Signatur ist nicht vorhanden. An was kann das liegen?
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: koehlerbv am 29.03.16 - 15:45:27
Wird überhaupt die Text-Signatur im CalendarProfile verwendet oder ist nur RT Signature im Einsatz? Dann bleibt mit dem Code natürlich das Lesen / Schreiben des Signature-Itemvalues folgenlos.

Bernhard
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 29.03.16 - 16:03:28
wir haben dazu strenge Vorgaben, daher muss ich die Datei über den Server öffnen und dann speichern...

Wenn ich Vorgaben öffne, ist Rich-Text angekreuzt.

Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: koehlerbv am 29.03.16 - 16:08:09
Du liest aber das Item für einfachen Text aus ...
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 29.03.16 - 16:58:30
und wie änder ich das?
Hab jetzt sämtliche Foren überflogen, und entweder verwenden die das so, oder nutzen ein Uidocument :(
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 30.03.16 - 08:31:07
Ne das verwendet niemand so, also ich kenne keinen bei dem das so geht ;)
Klasse NotesRichtextItem Methode appendToRTItem ist hier die richtige Wahl.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 05.04.16 - 15:27:37
mich hatte mal wieder die Grippe erwischt...

Also nicht wundern, ich suche noch was es mit dem appendToRTItem auf sich hat...Bin aber noch nicht fündig geworden

Viele grüße
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 06.04.16 - 10:16:49
also ich verzeifle da jetzt langsam echt... :(
Und versuche wirklich alle eure Tipps anzuwenden, für die ich auch echt dankbar bin...aber ich bekomme die signatur einfach nicht hin...
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: DerVissi am 06.04.16 - 11:45:52

Es sollte "AppendRTItem" heißen nicht "AppendToRTItem"

https://www.ibm.com/support/knowledgecenter/SSVRGU_9.0.1/com.ibm.designer.domino.main.doc/H_APPENDRTITEM_METHOD.html
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 06.04.16 - 14:06:42
über dies bin ich auch schon gestolpert, allerdings bin ich als
anfänger hier ratlos, wie ich das für die Signatur anwende.

Leider habe ich nämlich keine weitere Anwendungsbeispiele gefunden
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: DerVissi am 06.04.16 - 14:24:15
So wie ich das verstanden habe, brauchst du folgendes:

1. Zuerst das Profildokument "Calendar Profile"
2. Das Item in dem die RichText Signatur steht "Signature_Rich"
3. Die Signatur bekommst du dann rein mit "Call rtitem.AppendRTItem(das signatur item hier rein)"
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 06.04.16 - 16:13:15
vielen Dank für deine Hilfe :)


 Set profile = db.GetProfileDocument("CalendarProfile")
 Set RTSig = profile.GetFirstItem("Signature_Rich")
 Set rtitem = NewNotesRichTextItem(doc, "Body")
 Call rtitem.AppendRTItem(RTSig)


Wie dir bereits geschrieben, kommt hier die Fehlermeldung

Objektvariable oder With-Blockvariable nicht festglegt
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 06.04.16 - 16:37:02
verwende "New NotesRichTextItem" anstatt "NewNotesRichTextItem".
Verwende bitte den Excel-Debugger um die Fehlerzeile zu finden.
Schließlich machen wir alle mal Tippfehler, siehe "AppendToRTItem" ;)
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: jBubbleBoy am 06.04.16 - 19:16:30
... da fällt mir wieder ein das du ja Excel-Code schreibst, da funktioniert der New-Operator nicht, aber:
set rt = doc.CreateRichTextItem("Body")
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 07.04.16 - 09:43:12
also so geht es :)


 Set profile = db.GetProfileDocument("CalendarProfile")
 Set RTSig = profile.GetFirstItem("Signature_Rich")
 Set rtitem = doc.CreateRichTextItem("body")
  Call rtitem.AppendText(sText)
 Call rtitem.AddNewLine(2)
 Call rtitem.AppendRTItem(RTSig)


Hier noch einmal der ganze Code


Option Explicit
 
Sub lotus()

 Dim sText As String, sEmpfang As String, sBetrifft As String
 Dim session As Object, db As Object, doc As Object, rtobject As Object
 Dim rtitem As Object, sKopie As String
 Dim AttachMe As Object, DerAnhang As Object
 Dim user As String, server As String
 Dim mailfile As String, sBlindKopie As String
 Dim vAn As Variant, vCopy As Variant
 Dim vBlind As Variant, sAnhang As String
 Dim profile As Object
 Dim RTSig As Object
 
 
 On Error GoTo Fehler
 
 sEmpfang = "test@test.de" ' Einträge durch " ; " getrennt
 sBetrifft = "Test"                 ' die Betreffzeile
 sText = "funktioniert es? "                            ' Testtext
 sKopie = " "                       ' Einträge durch " ; " getrennt
  sBlindKopie = " "                  ' Einträge durch " ; " getrennt
  vAn = Split(sEmpfang, " ; ")       ' Empfänger Array
 sAnhang = ""                       ' richtiger Pfad Muss natürlich richtig gesetzt werden
 If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ") 'cc Array
 If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")  'bcc Array
 
 
 Set session = CreateObject("Notes.NotesSession") ' Notes muss gestartet sein
 user = session.UserName
 server = session.GetEnvironmentString("MailServer", True)
 mailfile = session.GetEnvironmentString("MailFile", True)
 Set db = session.getdatabase(server, mailfile)
 Set doc = db.createdocument()
 
 doc.form = "Memo"
 doc.sendTo = vAn                                       ' an array
 If Len(sKopie) > 0 Then doc.copyto = vCopy             'cc Array
 If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind  'bcc Array
 
 doc.Subject = sBetrifft ' die Betreffzeile
 Set profile = db.GetProfileDocument("CalendarProfile")
 Set RTSig = profile.GetFirstItem("Signature_Rich")
 Set rtitem = doc.CreateRichTextItem("body")
  Call rtitem.AppendText(sText)
 Call rtitem.AddNewLine(2)
 Call rtitem.AppendRTItem(RTSig)

 
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now
If sAnhang <> "" Then
  Call rtitem.EMBEDOBJECT(1454, "", sAnhang)
End If
rtitem.saveToDisk = True

'*************************
Call doc.Save(True, False)
Call doc.Send(False)
  
Aufraeumen:
 On Error GoTo Fehler
 Set rtitem = Nothing
 Set AttachMe = Nothing
 Set DerAnhang = Nothing
 Set db = Nothing
 Set doc = Nothing
 Set session = Nothing
 Exit Sub
 
Fehler:
 MsgBox "Fehler in Sub Fehler 0 Erste Division" & vbCrLf _
 & "Fehlernummer: " & Err.Number & _
 vbCrLf & "Fehlerbeschreibung: " & Err.Description
 
End Sub



Ich danke allen, die die Geduld mit mir nicht verloren haben und mir echt super geholfen haben, danke euch!

Jetzt versuche ich, den restlichen code einzufügen :)
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 07.04.16 - 18:02:34
Es funktioniert :)so und  anbei der gesamte Code, um mehrere Empfänger mit einer persönlichen Anrede anschreiben zu können, + Signatur und + zwei möglichen Anhängen


Option Explicit
 
Sub CommandButton1_Click()
  If MsgBox("Sollen die E-Mail(s) gesendet werden?", vbQuestion + vbYesNo, _
    "Löschen bestätigen") = vbYes Then

 Dim sText As String, sEmpfang As String, sBetrifft As String
 Dim session As Object, db As Object, doc As Object, rtobject As Object
 Dim rtitem As Object, sKopie As String
 Dim AttachMe As Object, DerAnhang As Object
 Dim user As String, server As String
 Dim mailfile As String, sBlindKopie As String
 Dim vAn As Variant, vCopy As Variant
 Dim vBlind As Variant, sAnhang As String, sAnhang2 As String, sAnhang3 As String
 Dim profile As Object
 Dim RTSig As Object
 Dim i As Long
 Dim sAnrede As Variant
 Dim sVorname As Variant
 Dim sNachname As Variant
 Dim tempAnrede As Variant
 
 On Error GoTo Fehler
 
 '*************************************************************************************************************
 
 For i = 12 To cells(Rows.Count, 9).End(xlUp).Row                                                               ' von Zeile 12 in Spalte 9 bis zur letzten beschriebenen Zeile in Spalte 9
 
 vAn = cells(i, 9)                                                                                              ' e-Mail an alle Empfänger, die ab Zeile 12 in Spalte 9 stehen
 
 sBetrifft = Range("b3")                                                                                        ' die Betreffzeile der E-Mail steht in Zelle "B3"
 sAnrede = Range("e" & i)                                                                                       ' nehme Anrede aus Spalte e
 Select Case (sAnrede)
        Case "Herr":                                                                                            'Im Fall, dass Anrede "Herr" in Spalte e, dann schreibe "Sehr geehrter Herr"
          tempAnrede = "Sehr geehrter Herr"
        Case "Frau":
          tempAnrede = "Sehr geehrte Frau"                                                                      'Im Fall, dass Anrede "Frau" in Spalte e, dann schreibe "Sehr geehrte Frau"
        Case "Sehr geehrte Damen und Herren":
          tempAnrede = "Sehr geehrte Damen und Herren"
        Case "Dear":
          tempAnrede = "Dear"                                                                                   'Im Fall, dass Anrede "Dear" in Spalte e, dann schreibe "Dear"
      End Select
     
 sVorname = Range("f" & i)                                                                                      'Nehme den Vorname aus Spalte f
 sNachname = Range("g" & i)                                                                                     'Nehme den Vorname aus Spalte g
 
 If Sheets("Tabelle1").Range("h" & i).Value = "Deutsch" Then                                                    ' wenn in Spalte h ab Zeile 12 als Sprache "Deutsch" eingetragen ist, dann
     sText = tempAnrede & " " & sNachname & "," & Chr(10) & Chr(10) & Range("B4") & Chr(10)                     ' nehme die gewählte Anrede + Nachnamen + den Text aus Zelle "B4"
      Else
        sText = tempAnrede & " " & sVorname & "," & Chr(10) & Chr(10) & Range("D4") & Chr(10)                   'sonst nehme Anrede + Vorname + Text aus Zelle "D4"
      End If
 
 
  sKopie = Range("d3")                                                                                          ' Kopie an E-Mail Empfänger aus Zelle "D3", bei mehreren, Einträge durch " ; " getrennt
  sBlindKopie = " "                                                                                             ' Einträge durch " ; " getrennt
                                                                                                               
 sAnhang = Range("b6")                                                                                          ' Link zum Anhang1 in Zelle "B6"
 sAnhang2 = Range("b7")                                                                                         ' Link zum Anhang2 in Zelle "B7"
                                                                                       
 
 If Len(sKopie) > 0 Then vCopy = Split(sKopie, " ; ")                                                           'cc Array
 If Len(sBlindKopie) > 0 Then vBlind = Split(sBlindKopie, " ; ")                                                'bcc Array
 
 
 Set session = CreateObject("Notes.NotesSession")                                                               'Notes muss gestartet sein
 user = session.UserName
 server = session.GetEnvironmentString("MailServer", True)
 mailfile = session.GetEnvironmentString("MailFile", True)
 Set db = session.getdatabase(server, mailfile)
 Set doc = db.createdocument()
 
 doc.form = "Memo"
 doc.sendTo = vAn                                                                                               'an array
 If Len(sKopie) > 0 Then doc.copyto = vCopy                                                                     'cc Array
 If Len(sBlindKopie) > 0 Then doc.blindcopyto = vBlind                                                          'bcc Array
 
 doc.Subject = sBetrifft                                                                                        ' Bereff E-Mail aus sBetrifft
 Set profile = db.GetProfileDocument("CalendarProfile")                                                         ' Nehme das LN Profile aus dem "Calender Profile"
 Set RTSig = profile.GetFirstItem("Signature_Rich")                                                             '
 Set rtitem = doc.CreateRichTextItem("body")
 Call rtitem.AppendText(sText)
 Call rtitem.AddNewLine(2)                                                                                      ' füge nach dem text noch zwei leere Zeilen ein
 Call rtitem.AppendRTItem(RTSig)                                                                                ' Kopiere RTSig in den Body

 
 doc.SAVEMESSAGEONSEND = True
 doc.PostedDate = Now
If sAnhang <> "" Then
  Call rtitem.EMBEDOBJECT(1454, "", sAnhang)                                                                    'hänge Anhang an
  Call rtitem.EMBEDOBJECT(1454, "", sAnhang2)                                                                   'hänge Anhang2 an
 
End If
rtitem.saveToDisk = True

'***********************************************************************************************************************************
Call doc.Save(True, False)
Call doc.Send(False)

 Next i
 
Aufraeumen:
 On Error GoTo Fehler
 Set rtitem = Nothing
 Set AttachMe = Nothing
 Set DerAnhang = Nothing
 Set db = Nothing
 Set doc = Nothing
 Set session = Nothing
 Exit Sub
 
Fehler:
 MsgBox "Fehler in Sub Fehler 0 Erste Division" & vbCrLf _
 & "Fehlernummer: " & Err.Number & _
 vbCrLf & "Fehlerbeschreibung: " & Err.Description
 
End If

End Sub



Noch einmal vielen Dank für eure Hilfe
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 02.05.16 - 10:47:15
Hallo zusammen,

jetzt bin ich es noch einmal :)

An was kann das liegen, dass der Code bei einem Kollegen funktioniert hat und jetzt nicht mehr funktioniert? (Es wird die gleiche Datei verwendet, auch bei anderen Kollegen geht diese Datei)

Er bekommt immer follgende Fehlermeldung:

Fehlernummer: -2147417851
Fehlerbeschreibung: Automatisierungsfehler
Ausnahmefehler des Servers


Vielen Dank im Voraus

Grüße
Benni
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: schroederk am 02.05.16 - 11:18:52
Wenn der Code mal funktioniert hat und jetzt nicht mehr, muss sich etwas geändert haben.
Das können ganz banale Berechtigungsänderungen sein oder auch geänderte Werte, die übergeben werden.
Bspw. kein valides Datum.
Oder auf der Office-Seite und damit die API hat sich vielleicht geändert.

Hast Du mal nach der Fehlermeldung gegoogelt? Wobei ich wohl nach der englischen Version des Fehlers (automation error) suchen würde, da findet man meist mehr Ergebnisse als mit der deutschen Fehlermeldung.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: DerVissi am 02.05.16 - 15:48:07
Sowas kommt auch vor wenn unterschiedliche Windows User verwendet werden.

z.B.
Excel oder Notes sind als Administrator gestartet.
Das jeweils andere Programm wird vom normalen User verwendet.
Titel: Re: E-Mailversand aus Excel geht mit LN 9 nicht mehr
Beitrag von: Benni1988 am 03.05.16 - 10:59:09
Er ist überall als Admin angemeldet, allerdings wurde bei Ihm die Abreitsumgebung von Lotus Notes geändert.

Bei google habe ich noch nichts mit dem gleichen Problem gefunden. Aber das wird dann an der Arbeitsumgebung liegen, nehme ich an.