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

Tabellen-Bereich in E-Mail einfügen

Tabellen-Bereich in E-Mail einfügen
07.11.2007 19:35:00
Stefan
Einen schönen Abend allerseits,
ich möchte einen Bereich der Tabelle kopieren und in einer neu zu öffnenden E-Mail einfügen.
Ein bekannte Aufgabe mit bereits sehr guten Lösungen.
Worin sich mein Wunsch von den bisherigen Lösungen unterscheidet ist das Folgende:
ich möchte, dass eine neue E-Mail aufgeht und der gewünschte Tabellenbereich dort eingefügt wird inklusive Formatierungen und Rahmenlinien - und dass die E-Mail noch zum Bearbeiten offen ist.
Beim nachfolgenden Programmcode, den ich gefunden habe, ist das Problem, dass man noch immer in Excel ist und noch keine echte, geöffnete E-Mail vor sich hat.

Sub Send_OriginalRange_from_Excel()
'Getestet unter Office XP
'Ohne Select geht es nicht :-))
Range("C47:C101").Select
'Das anzeigen der Envelope Commandbar ist unabdingbar
ActiveWorkbook.EnvelopeVisible = True
'Nun werden die Adressen vergeben
With ActiveSheet.MailEnvelope
.Introduction = "Das ist der Einleitungstext." & vbCrLf & "mit einer zweiten Zeile"
.Item.To = "test@test.at"
.Item.Subject = "Die aktuellen Daten"
.Item.Display
End With
End Sub


Ich fand auch die folgende Lösung:


Sub Excel_Range_via_Outlook_Senden()
Dim OutApp As Object, Mail As Object, i
Dim Nachricht
'Verweis auf "Microsoft Forms 2.0 Object Library" aktivieren !!
'sonst geht es nicht
'Dataobject wird gebraucht wegen der Zwischenablage
Dim ClpObj As DataObject
Set ClpObj = New DataObject
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
'Excelbereich der versendet werden soll.
'Wenn kein Bereich versendet werden soll sondern
'der Bereich bereits kopiert wurde, können sie die
'nächsten beiden Zeilen auskommentieren
Range("C47:C101").Select
'Bereich wird in die Zwischenablage kopiert
Selection.Copy
With Nachricht
.Subject = "Betreffzeile Header"
'Zwischenablage wird eingefügt
ClpObj.GetFromClipboard
.Body = ClpObj.GetText(1)
.To = "sw8@gmx.at"
'Hier wird die Mail angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'.Send
End With
Set OutApp = Nothing
Set Nachricht = Nothing
'Auf Outlook warten. Ist nicht schnell genug :-))
Application.Wait (Now + TimeValue("0:00:05"))
End Sub


Die ist schon sehr brauchbar, weil da wirklich eine eigenständige E-Mail aufgeht, in der der Text der Excel-Tabelle eingefügt wird. Aber bei dieser Prozedur wird der Text leider ohne Formatierung übernommen, die ich aber dringend benötige.
So bleibt mir zur Zeit als einzige Lösung, dass ich
- zuerst den gewünschten Bereich in die Zwischenablage kopiere
- dann mittels ShellExecute eine E-Mail aufmache
- und dort irgendwie die Zwischenablage einfüge
Leider weiß ich den letzten Schritt nicht - also wie ich zB die Tastenkombination "Strg-V" an die geöffnete E-Mail weitergeben kann.
Hat irgendjemand eine Idee ?
Vielen Dank im Vorhinein,
Stefan

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

Betreff
Datum
Anwender
Anzeige
AW: Tabellen-Bereich in E-Mail einfügen
07.11.2007 22:18:00
Tino
Hallo,
Application.SendKeys "^(v)" kannst du die Tasten-Kombination schicken.
Nachteil du musst dich vor dem senden dieser Tastatur-Kombination im Body der Mail befinden!
Habe auch nach einer Alternative gesucht, bin auch nicht fündig geworden.
Gruss
Tino

AW: Tabellen-Bereich in E-Mail einfügen
08.11.2007 07:41:04
Stefan
Vielen Dank Tino,
das ist schon mal ein guter Hinweis und ich werde das weiterverfolgen.
Wenn ich auf eine Lösung stoße, werde ich sie hier bekannt geben
lG Stefan

AW: Tabellen-Bereich in E-Mail einfügen
08.11.2007 11:44:35
Stefan
So - und hier nun noch die Lösung, die endlich klappt

Sub BEREICHMAILEN()
Dim OutApp As Object, Mail As Object, i
Dim Nachricht
' nachfolgend den gewünschten Tabellenbereich einstellen
Range("C47:G102").Select
Selection.Copy
' Öffnen der Mail
Set OutApp = CreateObject("Outlook.Application")
Set Nachricht = OutApp.CreateItem(0)
With Nachricht
.Subject = "Betrefftext"
.To = "Email@dresse.de"
.Display
End With
Set OutApp = Nothing
Set Nachricht = Nothing
'Kurz warten, damit die Mail Zeit zum Öffnen hat
Application.Wait (Now + TimeValue("0:00:05"))
' Dann die Zwischenablage einfügen
Application.SendKeys ("%bi") ' im Menü BEARBEITEN (Alt-B) das e-I-nfügen wählen
'Application.SendKeys ("^v") ' Strg-V Anweisung ist die 2.Möglichkeit statt Alt-B + I
End Sub


Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige