Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Copy und per Email senden
31.01.2019 07:52:55
Thomas
Hallo
ich habe eine Datei, wo nur die Userform sichtbar ist.
Nun möchte ich das dass Tabellenblatt "Drucken" der Bereich "A1:AJ57" in eine Email eingefügt wird.
Der erste Ansatz war:
Private Sub CommandButton3_Click()
Worksheets("Drucken").Range("A1:AJ57").CopyPicture xlScreen, xlBitmap
Dim oApp As Object
Set oApp = CreateObject("Outlook.Application")
On Error Resume Next
With oApp.CreateItem(0)
Application.Wait 1
.To = "Mail@mail.de"
.Subject = "Test" & "_" & ThisWorkbook.Worksheets("Drucken").Range("BH31")
.Body = "Testmail"
.Display
SendKeys "{END}", True
SendKeys "~", True
SendKeys "^v", True
SendKeys "~", True
.GetInspector 'fügt die Standart-Signatur an
End With
On Error GoTo 0
Set oApp = Nothing
End Sub
Was natürlich beim ausgeblendetem Tabellenblatt nicht funktioniert.
Eine reine .Copy Version klappte, sieht aber unschön aus, Grafiken sind verschoben etc.
Hat jemand Rat oder eine Idee?

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy und per Email senden
31.01.2019 08:03:14
Torsten
Hallo,
versuch mal:
Private Sub CommandButton3_Click()
Worksheets("Drucken").Range("A1:AJ57").CopyPicture xlScreen, xlBitmap
Dim oApp As Object
Set oApp = CreateObject("Outlook.Application")
On Error Resume Next
With oApp.CreateItem(0)
Application.Wait 1
.To = "Mail@mail.de"
.Subject = "Test" & "_" & ThisWorkbook.Worksheets("Drucken").Range("BH31")
.Body = "Testmail"
.Display
Dim wordDoc As Word.Document
Set wordDoc = outMail.GetInspector.WordEditor
wordDoc.Range.PasteAndFormat wdChartPicture
.GetInspector 'fügt die Standart-Signatur an
End With
On Error GoTo 0
Set oApp = Nothing
End Sub

Anzeige
AW: Copy und per Email senden
31.01.2019 08:04:19
Torsten
Sorry,
hab noch vergessen, die erste Zeile zu aendern, sool nur so sein:
Worksheets("Drucken").Range("A1:AJ57").Copy

AW: Copy und per Email senden
31.01.2019 08:26:22
Torsten
Hallo nochmal,
vergiss es. Funktioniert nicht so, wie ich dachte. Ist doch etwas komplizierter.
Melde mich wieder.
AW: Copy und per Email senden
31.01.2019 08:38:42
Thomas
Schade.
Werde warten ;-)
AW: Copy und per Email senden
31.01.2019 08:50:01
Torsten
Hallo zum naechsten,
also wie gesagt. Nicht so ganz unkompliziert. Ich verstehe doch richtig, dass du den Bereich als Bild in die Email einfuegen willst?
Dann bitte den nachfolgenden Code in ein Modul kopieren:
Sub email_with_range()
Dim TempFilePath As String
Dim xOutApp As Object
Dim xOutMail As Object
Dim xHTMLBody As String
Dim xRg As Range
On Error Resume Next
Set xRg = Worksheets("Drucken").Range("A1:AJ57")
If xRg Is Nothing Then Exit Sub
With Application
.Calculation = xlManual
.ScreenUpdating = False
.EnableEvents = False
End With
Set xOutApp = CreateObject("outlook.application")
Set xOutMail = xOutApp.CreateItem(olMailItem)
Call createJpg(ActiveSheet.Name, xRg.Address, "DashboardFile")
TempFilePath = Environ$("temp") & "\"
xHTMLBody = "Testmail
" _ & "
" _ With xOutMail .Subject = "Test" & "_" & ThisWorkbook.Worksheets("Drucken").Range("BH31") .HTMLBody = xHTMLBody .Attachments.Add TempFilePath & "DashboardFile.jpg", olByValue .To = "Mail@mail.de" .Display .GetInspector End With End Sub Sub createJpg(SheetName As String, xRgAddrss As String, nameFile As String) Dim xRgPic As Range ThisWorkbook.Activate Worksheets(SheetName).Activate Set xRgPic = ThisWorkbook.Worksheets(SheetName).Range(xRgAddrss) xRgPic.CopyPicture With ThisWorkbook.Worksheets(SheetName).ChartObjects.Add(xRgPic.Left, xRgPic.Top, xRgPic. _ Width, xRgPic.Height) .Activate .Chart.Paste .Chart.Export Environ$("temp") & "\" & nameFile & ".jpg", "JPG" End With Worksheets(SheetName).ChartObjects(Worksheets(SheetName).ChartObjects.Count).Delete Set xRgPic = Nothing End Sub
Und den Code fuer deinen Button beschraenken auf:
Call email_with_range
Lass mich wissen, obs funktioniert. Bei mir hat es.
Anzeige
AW: Copy und per Email senden
31.01.2019 08:54:47
Torsten
Jetzt gibt es nur noch ein Problem mit der Darstellung hier im Forum.
Wo du dieses BildSymbol siehst, muss zwischen die Anfuehrungszeichen: img src='cid:DashboardFile.jpg'
mit einem kleiner als Zeichen davor und einem groesser als Zeichen dahinter.
Nur fuer den Fall, dass es beim Kopieren vom Code fehlt.
AW: Copy und per Email senden
31.01.2019 09:05:32
Thomas
Bei mir bleibt er bei
" _
& "
hängen
AW: Copy und per Email senden
31.01.2019 09:07:31
Thomas
Userbild
AW: Copy und per Email senden
31.01.2019 10:17:26
Thomas
Ahhhh
Habe den Bereich mal gelöscht, der oben rot ist.
Da hat es dann funktioniert.
Kann man das Bild auch in die E-mail packen und nicht als Anhang?
Du hast mir echt mächtig weiter geholfen.... Ganz großes Dankeschön
Anzeige
AW: Copy und per Email senden
31.01.2019 10:38:08
Torsten
Da liegt der Hund begraben in dem roten. Da fehlt sicherlich etwas. Das Problem ist, dass es hier im Forum ein paar Darstellungsprobleme gibt, wenn man z.B. die kleiner und groesser als Zeichen verwenden muss. Weiss nicht warum das so ist. Haengt sicher mit HTML zusammen.
Ich lad dir mal eine Datei mit dem Code hoch, von da kannst du ihn dann richtig kopieren und in deine Datei einfuegen.
Wenn der Code vollstaendig ist wird naemlich das Bild auch im Email Body und nicht als Anhang hinzugefuegt.
Gruss Torsten
https://www.herber.de/bbs/user/127317.xlsm
Anzeige

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige