Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
368to372
368to372
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Verständnisfrage Excel und Lotus-Notes

Verständnisfrage Excel und Lotus-Notes
22.01.2004 12:23:35
Michael O.
Hallo
ich habe hier im Achriv schon (fast) die Lösung meines Problems gefunden.
der Code funktioniert super gut bis auf eine kleinigkeit.
unten weiter steht
'Send the document
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
MailDoc.SEND 0, Recipient
in "Recipient" stehen die Empfänger für das Mail, doch wenn dort mehr als 1 Empfänger drin steht wird der 2 Empfänger ab dem @-zeichen verstümmelt und die danach sind garnicht mehr da :-(
Gibt es eine Möglichkeit mehrere Empfänger einzugeben?? Über eine Gruppenbildung im Lotus-Notes geht es! Aber dann müsste jeder Benutzer meiner Tabellen sich eine entsprechende Gruppe im Notes einrichten. Ich wollte aber eigentlich aus einem Tabellenblatt die gewünschten Empfänger auslesen. Aber wie gesagt es geht nur einer. Kann ich außerdem das "Sofortige" Senden verhindern? sondern nur ein neues Mail erzeugen und dann mit Hand zu versenden??
Danke für die hoffentlich hilfreichen Antworten
Gruß
Michael O.

Option Explicit

Function SendNotesMail(Subject As String, Attachment As String, Recipient As String, BodyText As String, SaveIt As Boolean)
Dim Maildb As Object 'Die Mail-Datenbank
Dim UserName As String 'Der Notes-Benutzername des SENDENDEN Users
Dim MailDbName As String 'Der Name der Maildatenbank des SENDENDEN Users
Dim MailDoc As Object 'Das Mail-Dokument selbst
Dim AttachME As Object 'Das Attachment-Richtextfile-Object
Dim Session As Object 'Die Notes-Session
Dim EmbedObj As Object 'Das Attachment
'Start a session to notes
Set Session = CreateObject("Notes.NotesSession")
'Get the sessions username and then calculate the mail file name
'You may or may not need this as for MailDBname with some systems you
'can pass an empty string
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
'Open the mail database in notes
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen = True Then
'Already open for mail
Else
Maildb.OPENMAIL
End If
'Set up the new mail document
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.form = "Memo"
MailDoc.sendto = Recipient
MailDoc.Subject = Subject
MailDoc.Body = BodyText
MailDoc.SAVEMESSAGEONSEND = SaveIt
'Set up the embedded object and attachment and attach it
If Attachment <> "" Then
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
MailDoc.CREATERICHTEXTITEM ("Attachment")
End If
'Send the document
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
MailDoc.SEND 0, Recipient
'Clean Up
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
End Function

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Verständnisfrage Excel und Lotus-Notes
22.01.2004 16:33:56
Michael Scheffler
Hi,
Du musst die Empfänger in ein Array stopfen und das übergeben.
Gruß
Micha
AW: Verständnisfrage Excel und Lotus-Notes
22.01.2004 17:23:38
Andi_H
Hi Micha,
endlich hat sich ein Antworter gefunden der was zu Lotus weiß. Ich verwende ebenfalls Lotus und habe auch die

Function SendNotesMail aus dem Forum.
Ich habe das bisher so gelöst das ich alle empfänger in eine Liste eingetragen habe und jedem meine Mail einzeln geschickt habe.
Wenn dies über ein Array möglich ist wär dies natürlich wesentlich schöner, nur hab ich das mit dem Array nicht hinbekommen, es wurde trotzdem nur eine Mail versandt.
Was mache ich den falsch??
Hier mal mein Code: (Code läuft, das mit dem Array habe ich eben versucht und bin gescheitert, Mail ging nur an den ersten Empfänger)

Sub notesmail_by_click_on_shape()
Dim s1 As String
Dim s2 As String
Dim s3 As String
Dim s4 As String
Dim beg As Integer, last As Integer
Dim i As Byte
Dim antw, vari
Dim var()
beg = 10
last = Sheets("NOTES").Cells(100, 6).End(xlUp).row
If last < 11 Then last = 10
s1 = Sheets("NOTES").Cells(4, 3) ' betreff
s2 = Sheets("NOTES").Cells(8, 3) 'anhang
s4 = Sheets("NOTES").Shapes("Text Box 2").TextFrame.Characters.Text 'mailtext
vari = (last - beg) + 1 'anzahl der arrayeinträge ermitteln
' Empfängerliste in Array einlesen
ReDim Preserve var(vari)
s3 = ""
Dim x As Byte
For x = beg To last
var(x - 9) = Sheets("NOTES").Cells(x, 6) ' array mit daten aus dem sheet füllen
Next
For i = 1 To last - beg
s3 = s3 & var(i) & "," 's3 ist das empfängerfeld
Next
s3 = Left(s3, Len(s3) - 1) ' letztes Komma entfernen
Call SendNotesMail(s1, s2, s3, s4, True)
End 

Sub

Anzeige
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 07:15:10
Michael O.
Wie Array??
Ich habe eine schon eine Schleife programmiert die, die Adressen aus einer Tabelle ausließt und in einen String packt, meinst du das???
Der sieht dann so aus. strmailan=strmailan & cells(x,1) in "strmailan steht dann Michael.xxx@firma.de, Walter.xxx@firma.de usw.
aber das funktioniert auch nicht :-(
Es wir immer nur der erste Name richtig übertragen.
Gruß
Michael
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 09:04:04
Kerstin
Hallo,
du übergibst die Empfänger als String und nicht als Array. Versuch es mal so:
For x = beg To last
var(x) = Sheets("NOTES").Cells(x, 6) ' array mit daten aus dem sheet füllen
Next
Call SendNotesMail(s1, s2, var, s4, True)
Gruß
Kerstin
Anzeige
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 09:48:19
Michael O.
Danke Kerstin :-)))
So funkioniert es jetzt klasse, obwohl ich das mit dem Array noch nicht ganz verstanden habe :-(
Wenn ich mir dem Code im Einzelschritt-Anschaue steht immer nur 1 (eine) Name drin ???
Wie werden dann alles an Notes übergeben??? auch habe ich keine Kommata oder so etwas gesetzt und es funktionert doch. Nur verstehen würde ich es noch gerne
Aber auf jeden Fall Danke erstmal
Gruß
Michael
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 10:16:22
Kerstin
Bitte Michael:-)
Du kannst dir den Inhalt des Arrays anschauen, wenn du als Überwachung beim Debuggen mal nur "var" eingibst und dir dann den Inhalt der einzelnen Elemente anschaust.
Schau dir auch mal in der vba-Hilfe "Verwenden von Datenfeldern" an, da wird das ganz gut erklärt.
Gruß
Kerstin
Anzeige
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 12:46:28
Andi_H
Hi Kerstin,
ich irgendwie mache ich hier was falsch, wenn ich mein array so fülle erhalte ich einen Fehler bei AUfruf der Function (call notessendmail ...)
Fehler beim kompilieren Datentyp ByRef unverträglich
For x = beg To last
var(x - 9) = Sheets("NOTES").Cells(x, 6) ' array mit daten aus dem sheet füllen
Next

Call SendNotesMail(s1, s2, var, s4, True)

Weißt du Rat?
Vielen Dank
Gruß
Andi
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 13:09:54
Kerstin
Hallo Andi,
versuch mal die Übergabe der Argumente in der Prozedur SendNotesMail von "Recipient As String" in "Recipient as Variant" zu ändern, dann sollte es klappen.
Gruß
Kerstin
Anzeige
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 13:57:45
Andi_H
Hi Kerstin,
dankeschön, der Fehler wär beseitigt, leider erhalte ich jetzt einen Runtimeerror 10
Datenfeld ist unveränderlich oder momentan gesperrt.
in der Function wird diese Zeile markiert.
MailDoc.sendto = Recipient
Gruß
andi
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 14:02:14
Michael O.
Hallo Andi,
bei mir lautet der Code an der "Sendestelle"
'Send the document
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
MailDoc.SEND 0, Recipient
kannst ja nochmal am Anfang dieses Treads schauen, da habe den kompletten Code gepostet.
Wie schon geschrieben, bei mir läuft es jetzt wunderbar
Gruß
Michael
Anzeige
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 14:16:29
Andi_H
Hi Michael,
die Zeile MailDoc.sendto = Recipient steht etwas weiter oben im Code,
Da ja der Code bei dir läuft würde mich interessieren wie du die Function aufrufst
Gruß
Andi

...
'Set up the new mail document
Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.form = "Memo"
MailDoc.sendto = Recipient 'hier stopt er
MailDoc.Subject = Subject
MailDoc.Body = BodyText
MailDoc.SAVEMESSAGEONSEND = SaveIt
'Set up the embedded object and attachment and attach it
If Attachment <> "" Then
Set AttachME = MailDoc.CREATERICHTEXTITEM("Attachment")
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", Attachment, "Attachment")
MailDoc.CREATERICHTEXTITEM ("Attachment")
End If
'Send the document
MailDoc.PostedDate = Now() 'Gets the mail to appear in the sent items folder
MailDoc.SEND 0, Recipient
'Clean Up
Anzeige
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 14:26:43
Michael O.
Stimmt :-(
ich habe in dem Code den ich als erstes gepostet habe eine kleinigkeit geändert
Sub SendNotesMail(Subject As String, Attachment As String, Recipient As Variant, BodyText As String, SaveIt As Boolean)
ich habe Recipient as Variant deklariert
und nicht mehr als String, dann ging es!
Nimm am besten den ganzen Code, dann sollte es funktionieren.
Gruß
Michael
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 14:44:05
Andi_H
Hi Michael,
ich habe jetz aus der Function eine Sub gemacht und schon klappt das mit den Empfängern. Der Fehler lag wohl daran das ich die Function mit einer Schaltfläche
aufgerufen habe und da lag wohl irgendwie der Fehler drin.
Dankeschön und ein schönes Wochenende.
Gruß
Andi_H
Anzeige
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 14:16:26
Kerstin
Hi, Andi
In der Funktion muss der Empfänger auch noch richtig (als Array) deklariert werden. Schreib doch am besten in deinem Modul ganz oben Option Explicit, damit wird erzwungen, dass du alles deklarieren musst.
Function SendNotesMail(Subject As String, Attachment As String, Recipient As variant, BodyText As String, SaveIt As Boolean)
Dim Maildb As Object 'Die Mail-Datenbank
Dim UserName As String 'Der Notes-Benutzername des SENDENDEN Users
Dim MailDbName As String 'Der Name der Maildatenbank des SENDENDEN Users
Dim MailDoc As Object 'Das Mail-Dokument selbst
Dim AttachME As Object 'Das Attachment-Richtextfile-Object
Dim Session As Object 'Die Notes-Session
Dim EmbedObj As Object 'Das Attachment
Dim varRecipient() as Variant
'Start a session to notes
Set Session = CreateObject("Notes.NotesSession")
'Get the sessions username and then calculate the mail file name
'You may or may not need this as for MailDBname with some systems you
'can pass an empty string
UserName = Session.UserName
MailDbName = Left$(UserName, 1) & Right$(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
'Open the mail database in notes
Set Maildb = Session.GETDATABASE("", MailDbName)
If Maildb.IsOpen = True Then
'Already open for mail
Else
Maildb.OPENMAIL
End If
'Set up the new mail document
ReDim Preserve varRecipient(vari) 'Das musst du anpassen
varRecipient = Recipient

Set MailDoc = Maildb.CREATEDOCUMENT
MailDoc.form = "Memo"

MailDoc.sendto = varRecipient
.....
Gruß
Kerstin

Anzeige
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 14:33:59
Andi_H
Hi Kerstin
Dankeschön für deine Hilfe, aber ich glaube ich bin zu doof dafür.
Option Explicit und Option Base 1 habe ich immer gesetzt.
ich habe mal die Datei hochgeladen.
https://www.herber.de/bbs/user/3174.xls
Gruß
andi
AW: Verständnisfrage Excel und Lotus-Notes
23.01.2004 14:48:29
Kerstin
Hallo Andi,
bei mir funktioniert dein Beispiel einwandfrei. Das, was ich als letztes geschrieben habe, kannst du also weglassen.
Woran das jetzt bei dir liegt, weiß ich auch nicht :-(
Gruß
Kerstin
Dankeschön fürs nachgucken, läuft jetzt. o.t.
23.01.2004 15:00:04
Andi_H
Läuft, Dankeschön
23.01.2004 14:46:09
Andi_H
Hi Kerstin,
es läuft, vielen Dank. Ich hatte die Function über einen Button aufgerufen, jetzt habe ich aus der Function eine Sub gemacht und schon gehts. Das mit dem Array war aber ne feine sache.
Herzlichen Dank und ein schönes WOchenende.
Gruß
Andi
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige