1.7k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo
Ich möchte mit einer Schaltfläche ein Makro Starten das mir ein bestimmten Zellbereich zb Bf5:Bl33 in mein E-Mail Programm kopiert Outlock 2010 .
Immer an eine bestimmte E-Mail Adresse schickt und mein E-Mail Programm wieder schließt.

Vielen dank an alle die sich mit meinem Anliegen befassen.

Mit freundlichen Grüßen
Hans

5 Antworten

0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Hans,
Sub EMailVersendenOutlook()
Dim obNachricht As Object
Dim obMail As Object
Dim rngBereich As Range
Set rngBereich = Range("BF5:BL33")
Set obMail = CreateObject("Outlook.Application")
Set obNachricht = obMail.CreateItem(0)
With obNachricht
.To = "EMail@Adresse.de"
.Subject = "Erinnerung"
.htmlBody = RangetoHTML(rngBereich)
.ReadReceiptRequested = False
'.display ' Outlook öffnen
.send ' sofort senden
End With
Set obNachricht = Nothing
Set obMail = Nothing
Set rngBereich = Nothing
End Sub

Function RangetoHTML(rng As Range)
' Changed by Ron de Bruin 28-Oct-2006
' Working in Office 2000-2007
On Error Resume Next
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"
'Copy the range and create a new workbook to past the data in
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
' .DrawingObjects.Visible = True
'.DrawingObjects.Delete
On Error GoTo 0
End With

'Publish the sheet to a htm file
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

'Read all data from the htm file into RangetoHTML
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=")

'Close TempWB
TempWB.Close savechanges:=False

'Delete the htm file we used in this function
Kill TempFile

Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function

Bis später,
Karin
0 Punkte
Beantwortet von
Hallo Karin
Vielen dank für deine Umfangreiche Hilfe.
Da ich das Makro Beruflich nutzen möchte kann ich es erst in einer Woche unter Outlook auf der Arbeit testen.
Habe es auf meinen Heim PC mit Windows 7 mit Live Mail ausprobiert. Als Code in Tabelle 1 und bekomme eine Fehlermeldung.

Lizenzierungsinformationen für diese Komponente nicht gefunden. Sie verfügen nicht über die erforderliche Lizenz, um diese Funktionsmerkmale in der Entwurfsumgebung nutzen zu können.

Kannst du mir da weiter helfen.

Nochmals besten Dank für dein Interesse an meinem Anliegen.


Bis dann,
Hans
0 Punkte
Beantwortet von beverly Experte (3.5k Punkte)
Hi Hans,

dieser Code ist für MS Outlook - so wie du in deinem Eröffnungsbeitrag vorgegeben hast, nicht für Live Mail.

Der Code gehört in ein allgemeines Modul, nicht ins Codemodul des Tabellenblattes.

Bis später,
Karin
0 Punkte
Beantwortet von
Hallo
Habe mir zusätzlich Outlook 2003 installiert.
Es läuft einwandfrei, dein Makro!!

Allerbesten dank für deine Hilfe.

Mit freundlichen Grüßen
Hans
0 Punkte
Beantwortet von
Hallo
Habe in meiner ersten Frage etwas vergessen.
Beim starten von Outlook, auf meinem Arbeitsplatz, muss ein Passwort eingegeben werden.
Kann dieses Passwort, wenn nötig in dem Makro, eingebunden werden.

Danke für weitere Hilfe!

Mit freundlichen Grüßen
Hans
...