Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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

Anzeige

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

Anzeige
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

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Tabellen-Bereich in E-Mail einfügen


Schritt-für-Schritt-Anleitung

Um eine Excel-Tabelle in eine E-Mail einzufügen, kannst Du VBA (Visual Basic for Applications) verwenden. Hier sind die Schritte, um dies zu erreichen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "Projekt" -> Einfügen -> Modul.
  3. Kopiere den folgenden Code in das Modul:
Sub BEREICHMAILEN()
    Dim OutApp As Object, Mail As Object
    Dim Nachricht
    ' Wähle den gewünschten Tabellenbereich aus
    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
    ' Kurz warten, damit die Mail Zeit zum Öffnen hat
    Application.Wait (Now + TimeValue("0:00:05"))
    ' Dann die Zwischenablage einfügen
    Application.SendKeys ("%bi") ' Alt + B + I für Einfügen
End Sub
  1. Passe den Bereich C47:G102 sowie die E-Mail-Adresse und den Betreff an Deine Bedürfnisse an.
  2. Schließe den VBA-Editor und führe das Makro über ALT + F8 aus.

Häufige Fehler und Lösungen

  • Problem: Die E-Mail öffnet sich nicht.

    • Lösung: Stelle sicher, dass Outlook installiert und korrekt konfiguriert ist.
  • Problem: Die Tabelle wird ohne Formatierungen eingefügt.

    • Lösung: Verwende den Befehl Application.SendKeys ("%bi") oder Application.SendKeys ("^v"), um die Zwischenablage einzufügen.
  • Problem: Application.SendKeys funktioniert nicht.

    • Lösung: Stelle sicher, dass der Fokus auf dem E-Mail-Body liegt, bevor Du die Tastenanschläge sendest.

Alternative Methoden

Wenn Du keine VBA-Lösung verwenden möchtest, gibt es auch manuelle Methoden:

  1. Kopieren und Einfügen:

    • Markiere den gewünschten Tabellenbereich in Excel.
    • Kopiere ihn (Strg + C).
    • Öffne eine neue E-Mail in Outlook.
    • Füge den Inhalt mit Strg + V ein.
  2. E-Mail-Adressen aus Excel kopieren:

    • Markiere die Zellen mit E-Mail-Adressen.
    • Kopiere sie und füge sie direkt in das "An"-Feld der E-Mail ein.

Praktische Beispiele

Hier ist ein Beispiel, wie Du eine Excel-Tabelle in eine Outlook-E-Mail einfügen kannst:

Sub Excel_Tabelle_in_Outlook_einfügen()
    Dim OutApp As Object, Mail As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set Mail = OutApp.CreateItem(0)

    ' Wähle und kopiere den gewünschten Bereich
    Range("A1:B10").Copy

    With Mail
        .Subject = "Wichtige Daten"
        .To = "beispiel@domain.com"
        .Display
        Application.SendKeys ("%bi") ' Einfügen im E-Mail-Body
    End With
End Sub

Tipps für Profis

  • Verwende die Methode Application.Wait, um sicherzustellen, dass die E-Mail vollständig geöffnet ist, bevor Du den Inhalt einfügst.
  • Teste Dein VBA-Makro regelmäßig, um sicherzustellen, dass es in der aktuellen Excel-Version funktioniert.
  • Achte darauf, dass Du die richtige Bibliothek im VBA-Editor aktiviert hast: Microsoft Forms 2.0 Object Library.

FAQ: Häufige Fragen

1. Wie kann ich eine Excel-Tabelle direkt in den E-Mail-Body einfügen? Du kannst VBA verwenden, um den gewünschten Bereich zu kopieren und dann in Outlook über Application.SendKeys einzufügen.

2. Funktioniert das auch mit Gmail? Ja, Du kannst die Tabelle in den E-Mail-Body von Gmail einfügen, indem Du den Inhalt zuerst in die Zwischenablage kopierst und dann in Gmail einfügst.

3. Gibt es eine Möglichkeit, E-Mail-Adressen aus Excel zu kopieren? Ja, markiere die Zellen mit den E-Mail-Adressen, kopiere sie und füge sie direkt in das "An"-Feld der E-Mail ein.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige