Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1896to1900
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

Bereich als E-Mail versenden

Bereich als E-Mail versenden
07.09.2022 19:52:10
Ralf
Guten Abend,
in meinem Datenblatt Tabelle1 würde ich gerne den Bereich AS1:AV12 per Outlook als Tabelle bzw. HTML versenden.
Mit dem Makro Rekorden wird nur die ganze Datei versendet.
Kann mir jemand helfen ?
Gruß Ralf

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereich als E-Mail versenden
07.09.2022 23:22:49
volti
Hallo Ralf,
in dem von Oberschlumpf referenzierten Beispielcode wird per HTML eine Tabelle nachgebaut. Kann man machen, ist dann aber auch nicht weiter formatiert.
Um einen Bereich als Bereich oder einen Bereich als Bild in eine eMail zu bekommen, gibt es mehrere Methode. Bei Google-Suchen wirst Du sehr oft die Methode über RangeToHTML finden. Klappt ja auch sehr gut.
Ich verwende eher die Copy-Methode. Hier mal zwei Beispiele für einen Bereich als Bereich-Kopie, bei der der Bereich nicht als Bild sondern eben als Tabelle eingefügt wird.
Da Du zu den restlichen Parametern keine Angabe gemacht hast, werden diese Parameter auch aus einem Blatt übernommen. Kann man auch anders machen.
Code:


Private Sub Mail_BereichalsBereich_Word1() ' Sendet Mail mit integriertem Bereich als Bereich mit Signatur Dim WSh1 As Worksheet, WSh2 As Worksheet Dim sMailtext As String, sBer As String sBer = "AS1:AV12" ' Kopierbereich Set WSh1 = ThisWorkbook.Sheets("Tabelle1") ' Blatt mit Maildaten Set WSh2 = ThisWorkbook.Sheets("Tabelle2") ' Datenblatt WSh2.range(sBer).Copy ' Bereich kopieren With CreateObject("Outlook.Application").CreateItem(0) .BodyFormat = 2 ' 2=HTML-Format, 3=Richtext .Subject = WSh1.range("A2").Value ' Betreff .To = WSh1.range("A3").Value ' Empfänger .CC = WSh1.range("A4").Value ' Kopie sMailtext = WSh1.range("A5").Value & vbLf .GetInspector ' Signatur holen .htmlbody = Replace(sMailtext, vbLf, "<br>") & .htmlbody .Display With .GetInspector.WordEditor.Application.Selection .start = Len(sMailtext) + 1 .Paste ' Bereich in Mail einfügen End With End With End Sub Private Sub Mail_BereichalsBereich_Word2() ' Sendet Mail mit integriertem Bereich als Bereich ohne Signatur Dim WSh1 As Worksheet, WSh2 As Worksheet Dim sBer As String sBer = "AS1:AV12" ' Kopierbereich Set WSh1 = ThisWorkbook.Sheets("Tabelle1") ' Blatt mit Maildaten Set WSh2 = ThisWorkbook.Sheets("Tabelle2") ' Datenblatt WSh2.range(sBer).Copy ' Bereich kopieren With CreateObject("Outlook.Application").CreateItem(0) .BodyFormat = 2 ' 2=HTML-Format .Subject = WSh1.range("A2").Value ' Betreff .To = WSh1.range("A3").Value ' Empfänger .CC = WSh1.range("A4").Value ' Kopie .Display .GetInspector.WordEditor.range.Paste ' Bereich in Mail einfügen End With End Sub

_________________________
viele Grüße aus Freigericht 😊
Karl-Heinz

Anzeige
AW: Bereich als E-Mail versenden
08.09.2022 07:08:46
Ralf
Hallo Karl Heinz,
danke für den Code.
Habe die Version mit Signatur verwendet und es klappt.
Allerdings wenn ich den Versand von .Display auf .Send ändere bekomme ich diese Fehlermeldung:
Laufzeitfehler 5 Ungültiger Prozeduraufruf oder ungültiges Argument
Wäre schön wenn das mit .Send gehen würde
Gruß Ralf
AW: Bereich als E-Mail versenden
08.09.2022 07:39:33
Volti
Hallo Ralf,
den SEND-Befehl hast Du aber als letztes, also nach dem Einfügen, ergänzt!?
Gruß Karl-Heinz
AW: Bereich als E-Mail versenden
08.09.2022 09:42:02
Ralf
Hallo.
Habe das so geändert,leider ohne Erfolg.

Sub Mail_Signatur()
' Sendet Mail mit integriertem Bereich als Bereich mit Signatur
Dim WSh1 As Worksheet, WSh2 As Worksheet
Dim sMailtext As String, sBer As String
sBer = "AS1:AV12"                             ' Kopierbereich
Set WSh1 = ThisWorkbook.Sheets("Tabelle1")    ' Blatt mit Maildaten
Set WSh2 = ThisWorkbook.Sheets("Tabelle1")    ' Datenblatt
WSh2.Range(sBer).Copy                         ' Bereich kopieren
With CreateObject("Outlook.Application").CreateItem(0)
.BodyFormat = 2                           ' 2=HTML-Format, 3=Richtext
.Subject = WSh1.Range("AS1").Value         ' Betreff
.To = WSh1.Range("AX1").Value              ' Empfänger
.CC = WSh1.Range("AX2").Value              ' Kopie
sMailtext = WSh1.Range("AX3").Value & vbLf
.GetInspector                             ' Signatur holen
.htmlbody = Replace(sMailtext, vbLf, "
") & .htmlbody ' .Display ' .Send With .GetInspector.WordEditor.Application.Selection .Start = Len(sMailtext) + 1 .Paste ' Bereich in Mail einfügen End With .Send End With End Sub
Gruß Ralf
Anzeige
AW: Bereich als E-Mail versenden
08.09.2022 11:24:07
Ralf
Habe es hin bekommen.
AW: Bereich als E-Mail versenden
08.09.2022 13:23:39
Volti
Sehr gut...
Das.Diplay musste schon bleiben, sonst fügt er es m.E. nicht ein.
Oder wie hast du es sonst hinbekommen?
Gruß KH
AW: Bereich als E-Mail versenden
08.09.2022 22:08:00
Ralf
Hallo Karl Heinz,
es hat dann doch einfach funktioniert.
Gruß Ralf

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige