Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Automatisch generierte E-Mail mit Screenshot

Automatisch generierte E-Mail mit Screenshot
30.03.2017 13:59:19
Sandra
Hallo,
ich habe ein Problem und ich hoffe, Sie können mir da helfen :-)
ich habe den folgenden Code:

Private Sub CommandButton2_Click()
Unload Listebearbeiten
Range("A1:S74").CopyPicture xlScreen, xlBitmap
Dim oApp As Object
Set oApp = CreateObject("Outlook.Application")
On Error Resume Next
With oApp.CreateItem(0)
Application.Wait 1
.To = Worksheets("E-Mails").Range("B4").Value
.Subject = Worksheets("E-Mails").Range("B5").Value
.Body = Worksheets("E-Mails").Range("B6").Value
.Display
SendKeys "{END}", True
SendKeys "~", True
SendKeys "^v", True
End With
On Error GoTo 0
Set oApp = Nothing
End Sub

Hiermit ist es mir möglich, eine automatische E-Mail aus einem Exceltabellenblatt zu generieren, einen Screenshot anzuhängen und nur im Outlook anzeigen zu lassen.
Der "Body" also der E-Mail Text besteht aus vielen Zeilen, also ich habe in Zelle "B6" mehrere Zeilenumbrüche, also in Summe sind es 9 Zeilen.
Mein Problem ist nun, dass der angehängte Code den Screenshot nicht nach der neunten Zeilen einfügt, sondern bereits nach der ersten Zeile. Aber dann ist meine E-Mail leider unterbrochen und somit sinnfrei. Wie kann ich das Problem umgehen? Ich habe mehrere Versuche gestartet, das Problem alleine zu lösen, aber leider ohne Erfolg :-(.
Mal ein Beispiel. Mit meinem Code sieht es wie folgt aus:
_____________________________________________________
Zeile 1
Screenshot
Zeile 2
Zeile 3
Zeile 4
Zeile 5
Signatur
_____________________________________________________
Aber es soll wie folgt aussehen:
_____________________________________________________
Zeile 1
Zeile 2
Zeile 3
Zeile 4
Zeile 5
Screenshot
Signatur
_____________________________________________________
Auch bekomme ich meine Standard Signatur nicht in die E-Mail gepackt und ich weiß nicht wieso :-(
Ich danke schon einmal vielmals im Voraus!!!
Liebe Grüße
Zoamy
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Automatisch generierte E-Mail mit Screenshot
30.03.2017 18:18:15
Luschi
Hallo Sandra,
Du hast die Steuerungstaste Strg bzw. Ctrl vergessen, denn nur damit springt der Cursor in der E-Mail ans Ende, bei Dir springt er ans Zeilenende der 1. Zeile; deshalb so:
SendKeys "^{END}~^v", True
Gruß von Luschi
aus klein-Paris
PS: SendKeys-Befehlen sollte man nicht stückeln!
Anzeige
AW: Automatisch generierte E-Mail mit Screenshot
31.03.2017 07:38:50
Sandra
Hallo,
klappt hervorragend genauso wie ich es mir vorgestellt habe. Vielen lieben Dank!!!
Jetzt habe ich nur noch mit der Signatur ein Problem, meine Standard Signatur wird nicht unter die E-Mail gesetzt und ich weiß nicht wieso :-(
Ganz liebe Grüße
Zoamy
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Automatisch generierte E-Mail mit Screenshot aus Excel


Schritt-für-Schritt-Anleitung

Um eine automatische E-Mail aus Excel zu generieren und einen Screenshot einzufügen, kannst du den folgenden VBA-Code verwenden. Dieser Code erstellt eine E-Mail in Outlook und fügt einen Screenshot der gewünschten Excel-Bereich ein.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (DeineDatei.xlsx)" > Einfügen > Modul.
  3. Kopiere den folgenden Code in das Modul:
Private Sub CommandButton2_Click()
    Unload Listebearbeiten
    Range("A1:S74").CopyPicture xlScreen, xlBitmap
    Dim oApp As Object
    Set oApp = CreateObject("Outlook.Application")
    On Error Resume Next
    With oApp.CreateItem(0)
        Application.Wait 1
        .To = Worksheets("E-Mails").Range("B4").Value
        .Subject = Worksheets("E-Mails").Range("B5").Value
        .Body = Worksheets("E-Mails").Range("B6").Value
        .Display
        SendKeys "{END}", True
        SendKeys "~", True
        SendKeys "^v", True
    End With
    On Error GoTo 0
    Set oApp = Nothing
End Sub
  1. Passe die Zellverweise an, um die Empfängeradresse, den Betreff und den Text der E-Mail zu definieren.
  2. Füge einen Button in dein Excel-Blatt ein, um den Code auszuführen.

Häufige Fehler und Lösungen

  • Fehler beim Einfügen des Screenshots: Wenn der Screenshot nicht an der gewünschten Stelle erscheint, überprüfe die SendKeys-Befehle. Stelle sicher, dass du die Steuerungstaste (^) korrekt verwendest, um zum Ende der E-Mail zu springen:

    SendKeys "^({END})", True
  • Standard-Signatur wird nicht eingefügt: Outlook fügt die Signatur nicht automatisch hinzu, wenn die E-Mail über VBA generiert wird. Du kannst die Signatur manuell in den Code einfügen, indem du sie in den Body der E-Mail einfügst.


Alternative Methoden

Eine weitere Möglichkeit, um eine automatisch generierte E-Mail mit einem Screenshot zu erstellen, besteht darin, einen Screenshot manuell zu machen und diesen in die E-Mail einzufügen. Du kannst dazu die Windows-Drucktaste verwenden, um einen Excel Screenshot zu erstellen, und diesen dann in Outlook einfügen.

Application.SendKeys "^{PRTSC}"

Verwende diese Methode, wenn du mehr Kontrolle über den Screenshot haben möchtest.


Praktische Beispiele

Hier sind einige Beispiele, wie du den Code anpassen kannst:

  1. Screenshot der gesamten Tabelle: Ändere den Bereich in Range("A1:S74") zu dem Bereich, den du erfassen möchtest.
  2. E-Mail an mehrere Empfänger: Trenne die E-Mail-Adressen mit einem Komma in der Zelle B4.

Tipps für Profis

  • Teste deinen Code immer in einer sicheren Umgebung, bevor du ihn in einer produktiven Excel-Datei verwendest.
  • Verwende Debug.Print, um zu überprüfen, ob alle Variablen korrekt gesetzt sind.
  • Halte deine Excel- und Outlook-Versionen auf dem neuesten Stand, um Kompatibilitätsprobleme zu vermeiden.

FAQ: Häufige Fragen

1. Wie füge ich einen Screenshot in eine Mail ein?
Verwende den VBA-Code, um den Screenshot zu erstellen und die SendKeys-Funktion, um ihn in die E-Mail einzufügen.

2. Was ist der Unterschied zwischen einem Screenshot und einem Excel-Screenshot?
Ein Screenshot ist ein Bild des Bildschirms, während ein Excel-Screenshot speziell einen Bereich innerhalb einer Excel-Tabelle erfasst.

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