Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
968to972
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
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel-Seite per Lotus Notes mailen

Excel-Seite per Lotus Notes mailen
17.04.2008 20:13:25
jens
Hallo Liebe Excel-Gemeinde,
Habe ein kleines Problem beim Versenden von Excel über Lotus Notes.
Ein Programm für Lotus-Notes habe ich freundlicherweise über dieses Forum schon erhalten,
mir fehlt nur noch ein Befehl, das Übernehmen/Kopieren eines Bereichs (Range("A1:C30") nach Lotus.
Da, wo der Befehl reinpassen könnte, habe ich eine Anmerkung gemacht.
'

Public Sub SendNotesMail(Subject As String, ABBachment As String, Recipient As String, BodyText  _
_
As String, SaveIt As Boolean)
'Set up the objects required for Automation into lotus notes
Dim BodyText As String 'Probeweise eingefügt
Dim Maildb As Object 'The mail daBTAbase
Dim UserName As String 'The current users notes name
Dim MailDbName As String 'THe current users notes mail daBTAbase name
Dim MailDoc As Object 'The mail document itself
Dim ABBachME As Object 'The aBBachment richtextfile object
Dim Session As Object 'The notes session
Dim EmbedObj As Object 'The embedded object (ABBachment)
'Prüfen,ob e-mail Adresse hinterlegt ist
If [C14] = "" Then
[C14].Select
MsgBox Prompt:="Keine e-Mail Adresse hinterlegt"
End
End If
'Festlegung der Variablen
N1 = [C14]                   'Empfänger
N2 = [B1]                    'Datum
N3 = [C15]                   'Betreff
'Start a session to notes
Set Session = CreateObject("Notes.NotesSession")
'Set meinNotes = 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 daBTAbase 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 = N1 ' Empfänger
MailDoc.sendcc = ""     'Kopie
MailDoc.Subject = N3 '     'Subject,Betreff z.B. "KundendiensBTAuftrag"
'Textfeld für die Mail, wird jedoch erst nach dem Replizieren angezeigt
'Jetzt könnte der Befehl kommen, behelfe mich zur Zeit über die Variable Text Brief
BodyText = TextBrief
MailDoc.Body = BodyText
MailDoc.SAVEMESSAGEONSEND = SaveIt
'Set up the embedded object and aBBachment and aBBach it
If ABBachment  "" Then
Set ABBachME = MailDoc.CREATERICHTEXTITEM("ABBachment")
Set EmbedObj = ABBachME.EMBEDOBJECT(1454, "", ABBachment, "ABBachment")
MailDoc.CREATERICHTEXTITEM ("ABBachment")
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 ABBachME = Nothing
Set Session = Nothing
Set EmbedObj = Nothing
MsgBox Prompt:="e- mail gesendet"
Application.ScreenUpdating = True
End Sub


5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel-Seite per Lotus Notes mailen
18.04.2008 10:39:06
mumpel
Hallo!
Das sind sehr viele Anmerkungen drin. Was genau möchtest Du mit dem Bereich machen? Soll dieser in eine separate datei kopiert werden oder direkt im mailbody stehen? Wenn der Bereich in den Mailbody soll, dann sieh dir mal das folgende Makro an. In ein Modul kopieren. Anstelle von TextBriefcolor> schreibst Du RangeToHtml(rng)color>. Den Bereich markieren und dann Mail senden. Du kannst das Makro auch entsprechend anpassen, damit der Bereich automatisch markiert wird. Ob Lotus HTML-fähig ist weis ich nicht.

Function RangetoHTML(rng As Range)
    Dim Fso As Object
    Dim ts As Object
    Dim TempFile As String
    Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
    rng.Copy
    Set TempWB = Workbooks.Add(1)
    With TempWB.Sheets(1)
        .Cells(1).PasteSpecial Paste:=8
        .Cells(1).PasteSpecial xlPasteValues, , False, False
        .Cells(1).PasteSpecial xlPasteFormats, , False, False
        .Cells(1).Select
        Application.CutCopyMode = False
        On Error GoTo 0 
    End With
    With TempWB.PublishObjects.Add( _
         SourceType:=xlSourceRange, _
         Filename:=TempFile, _
         Sheet:=TempWB.Sheets(1).Name, _
         Source:=TempWB.Sheets(1).UsedRange.Address, _
         HtmlType:=xlHtmlStatic)
        .Publish (True)
    End With
    Set Fso = CreateObject("Scripting.FileSystemObject")
    Set ts = Fso.GetFile(TempFile).OpenAsTextStream(1, -2)
    RangetoHTML = ts.readall
    ts.Close
    RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
                          "align=left x:publishsource=")
    TempWB.Close savechanges:=False
    Kill TempFile
    Set ts = Nothing
    Set Fso = Nothing
    Set TempWB = Nothing
End Function


Gruß, Rene

Anzeige
Nachtrag:
18.04.2008 10:47:31
mumpel
Im bereits vorhandenen Makro musst Du noch die Zeile Dim rng As Rangecolor> am Anfang des Makros einfügen.

AW: Excel-Seite per Lotus Notes mailen
18.04.2008 18:48:54
jens
Hallo Rene,
Vielen Dank für die Hilfe, Habe ich ausprobiert.
Jetzt bekomme ich jede Menge über Lotus, aber nicht das, was in der Tabelle 2, Range("C3:C10")
drin steht, sondern jede Menge Programmcodes. Wo liegt mein Fehler, ich habe das Gefühl, ich bin schon der Lösung sehr nahe.

AW: Excel-Seite per Lotus Notes mailen
18.04.2008 21:00:58
mumpel
Da hat noch etwas gefehlt. Der Code funktioniert zumindest in Outlook. Wie schon erwähnt, funktioniert das nur in Verbidnung mit HTML. Ob Lotus HTML-Mail unterstützt, weiss ich nicht. Eventuell musst Du MailDoc.Bodycolor> ändern, damit eine HTML-Mail daraus wird. Was man daran ändern muss, weiss ich auch nicht. Wenn immer der selbe Bereich gesendet werden soll, dann das folgende Makro. Die zuvor gepostete Funktion muss erhalten bleiben (nicht löschen).

Public Sub SendNotesMail(Subject As String, ABBachment As String, Recipient As String, BodyText _
 _
   As String, SaveIt As Boolean)
   'Set up the objects required for Automation into lotus notes 
   Dim BodyText As String 'Probeweise eingefügt 
   Dim Maildb As Object 'The mail daBTAbase 
   Dim UserName As String 'The current users notes name 
   Dim MailDbName As String 'THe current users notes mail daBTAbase name 
   Dim MailDoc As Object 'The mail document itself 
   Dim ABBachME As Object 'The aBBachment richtextfile object 
   Dim Session As Object 'The notes session 
   Dim EmbedObj As Object 'The embedded object (ABBachment) 
   'Prüfen,ob e-mail Adresse hinterlegt ist 
   If [C14] = "" Then
      [C14].Select
      MsgBox Prompt:="Keine e-Mail Adresse hinterlegt"
      End
     End If
   'Festlegung der Variablen 
            N1 = [C14]                   'Empfänger 
            N2 = [B1]                    'Datum 
            N3 = [C15]                   'Betreff 
   'Start a session to notes 
   Set Session = CreateObject("Notes.NotesSession")
   'Set meinNotes = 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 daBTAbase 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 = N1 ' Empfänger 
   MailDoc.sendcc = ""     'Kopie 
   MailDoc.Subject = N3 '     'Subject,Betreff z.B. "KundendiensBTAuftrag" 
   'BodyText = RangetoHTML(Range("C3:C10")) ' Fügt den Bereich in Mailbody ein 
   MailDoc.Body = RangetoHTML(Range("C3:C10")) 'BodyText 
   MailDoc.SAVEMESSAGEONSEND = SaveIt
   'Set up the embedded object and aBBachment and aBBach it 
   If ABBachment <> "" Then
   Set ABBachME = MailDoc.CREATERICHTEXTITEM("ABBachment")
   Set EmbedObj = ABBachME.EMBEDOBJECT(1454, "", ABBachment, "ABBachment")
   MailDoc.CREATERICHTEXTITEM ("ABBachment")
   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 ABBachME = Nothing
   Set Session = Nothing
   Set EmbedObj = Nothing
   MsgBox Prompt:="e- mail gesendet"
   Application.ScreenUpdating = True
   End Sub


Anzeige
AW: Excel-Seite per Lotus Notes mailen
20.04.2008 20:42:00
jens
Hallo Rene,
Vielen Dank, bin noch beim Tüfteln.

132 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige