Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1832to1836
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
Inhaltsverzeichnis

Excel Bereich in Mail kopieren

Excel Bereich in Mail kopieren
09.06.2021 10:03:31
lutz
Hallo,
ich möchte gerne via VBA einen Excel-Bereich in eine Mail als Grafik im Body einfügen.
Aktuell sieht mein Code so aus:

Sub send_mail()
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
Dim rngber As Range
Set rngber = Sheets("mail").Range("B6:Q25")
rngber.Copy
With objMail
.to = Sheets("mail").Range("C28").Value
.Subject = Sheets("mail").Range("C29").Value
.body = ""
.Display
End With
End Sub
Wie fülle ich den body?
Danke und mfg

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel Bereich in Mail kopieren
09.06.2021 12:55:20
PeTeR
Hallo Lutz,
hier mal ne Musterlösung aus dem Web wie so was geht:
Sub Email_erstellen()
Dim objOutlook As Object, objMail As Object
Set objOutlook = CreateObject(Class:="Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.To = "Empfänger"
.Subject = "Betreff"
.HTMLBody = fncRangeToHtml("Tabelle1", Range("D5:E7").Address)
.display
End With
End Sub

Private Function fncRangeToHtml(strWorksheetname As String, _
strRangeaddress As String) As String
Dim objFilesytem As Object, objTextstream As Object
Dim strFilename As String
strFilename = Environ$("temp") & "/" & _
Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
ActiveWorkbook.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=strFilename, _
Sheet:=strWorksheetname, _
Source:=strRangeaddress, _
HtmlType:=xlHtmlStatic).Publish True
Set objFilesytem = CreateObject("Scripting.FileSystemObject")
Set objTextstream = objFilesytem.GetFile(strFilename). _
OpenAsTextStream(1, -2)
fncRangeToHtml = objTextstream.ReadAll
objTextstream.Close
Set objTextstream = Nothing
Set objFilesytem = Nothing
Kill strFilename
End Function
Viel Erfolg und Respekt an den eigentlichen Programmierer!!
VG
PeTeR
Anzeige
AW: Excel Bereich in Mail kopieren
09.06.2021 14:50:52
Lutz
Danke.
Hier wird der Excel-Bereich aber nicht als Grafik sondern als "Ursprüngliche Formatierung beibehalten" eingefügt.
Außerdem wird das ganze nicht linksbündig sondern zentriert eingefügt - warum?
VG
AW: Excel Bereich in Mail kopieren
09.06.2021 20:24:12
PeTeR
Hallo Lutz,
dann musst du 1) den Bereich als Bild speichern und dann 2) das Bild in Outlook einfügen:
1)

Sub Range_To_Image()
Dim objPict As Object, objChrt As Chart
Dim rngImage As Range, strFile As String
On Error GoTo ErrExit
With Sheets("Tabelle1") 'Tabellenname - Anpassen!
Set rngImage = .Range("C4:D6")
rngImage.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
.PasteSpecial Format:="Bitmap", Link:=False, DisplayAsIcon:=False
Set objPict = .Shapes(.Shapes.Count)
strFile = "D:\ToDo\meinBild.gif" 'Pfad und Dateiname für das Bild
objPict.Copy
Set objChrt = .ChartObjects.Add(1, 1, objPict.Width + 8, objPict.Height + 8).Chart
objChrt.Paste
objChrt.Export strFile
objChrt.Parent.Delete
objPict.Delete
End With
ErrExit:
Set objPict = Nothing
Set objChrt = Nothing
Set rngImage = Nothing
End Sub
2)

Sub Email_erstellen()
Dim objOutlook As Object, objMail As Object
Dim sText
sText = sText & ""
Set objOutlook = CreateObject(Class:="Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
.To = "Empfänger"
.Subject = "Betreff"
.htmlbody = sText
.display
End With
End Sub
Kann man alles im Web finden ;-)
Viel Erfolg
PeTeR
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige