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

Markierte Zeile in Excel in der E-Mail verschicken

Forumthread: Markierte Zeile in Excel in der E-Mail verschicken

Markierte Zeile in Excel in der E-Mail verschicken
10.09.2018 14:33:01
klein
Hallo Zusammen,
ich habe hier eine Tabelle mit verschiedenen Daten.
https://www.herber.de/bbs/user/123857.xlsx
Nun will ich das wenn ich eine Zeile markiere, dann mit einer bestimmten tastenkombi ( z.B (Strg+ B), er mir bestimmte Daten aus der markierten Zeile raus kopiert und in eine Email Packt.
Bsp.
Ich markiere die Zeile 3 drücke dann meine Tastenkombie Str+B
Nun soll er Outlook öffnen und eine neue E-Mail erstellen, die wie folgt aussehen soll.
Hallo Bestellteam,
ich benötige folgendes Ersatzteil
Kunde : XXX
Kundennummer: 111
Servicetyp: schnell

System SN: bdf5d
Instrument PN : 898-844-00
Anzahl : 1
Vielen Dank.
Den Text, welchen ich hier "fett" anzeigen lasse ist immer gleich nur die Seriennummer und Instrument PN sollen sich ändern, diese soll er aus der markierten Zeile herrauslesen und einfügen.
Die Email soll nicht automatisch gesendet werden sondern , sollte nochmals manuel bestätigt werden.
Ich hoffe das ist verständlich genug.
Vielen Dank im Vorraus.
Grüße
klein
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Markierte Zeile in Excel in der E-Mail verschicken
10.09.2018 21:03:02
Rob

Sub ErsatzteileBestellung()
'Nummer der markierten Zeile ermitteln
Dim MarkierteZeile As Long
Dim SystemSN, InstrumentPN As String
MarkierteZeile = ActiveCell.Row
SystemSN = Cells(MarkierteZeile, 9)
InstrumentPN = Cells(MarkierteZeile, 11)
'Email erstellen
Dim objOLOutlook As Object
Dim objOLMail As Object
Dim strSignatur As String
Set objOLOutlook = CreateObject("Outlook.Application")
Set objOLMail = objOLOutlook.CreateItem(0)
With objOLMail
.To = ""
.CC = ""
.BCC = ""
.GetInspector.Activate
strSignatur = .Body
.Sensitivity = 3
.Importance = 2
.Subject = "Bestellung Ersatzteil"
.BodyFormat = 1
.Body = _
"Hallo Bestellteam, " _
& vbNewLine & vbNewLine & _
"ich benötige folgendes Ersatzteil" _
& vbNewLine & vbNewLine & _
"Kunde: XXX" & vbNewLine & _
"Kundennummer: 111" & vbNewLine & _
"Servicetyp: schnell" & vbNewLine & _
"System SN: " & SystemSN & vbNewLine & _
"Instrument PN: " & InstrumentPN & vbNewLine & _
"Anzahl : 1" _
& vbNewLine & vbNewLine & _
"Vielen Dank." & strSignatur
.Display
End With
Set objOLMail = Nothing
Set objOLOutlook = Nothing
End Sub

Anzeige
AW: Markierte Zeile in Excel in der E-Mail verschicken
10.09.2018 21:05:39
Rob
Die Tastenkombination Strg+b zur Ausführung des Makros kannst Du wiew folgt belegen:
Entwicklertools - Makros - Optionen
AW: Markierte Zeile in Excel in der E-Mail verschicken
10.09.2018 21:09:43
Rob
PS: Den Code direkt in das Arbeitsblatt kopieren und nicht in einem separaten Modul ausführen. Ansonsten noch auf das Arbeitsblatt verweisen. Sicher ist sicher.

SystemSN = Sheets(1).Cells(MarkierteZeile, 9)
InstrumentPN = Sheets(1.)Cells(MarkierteZeile, 11)

Anzeige
AW: Markierte Zeile in Excel in der E-Mail verschicken
11.09.2018 11:47:42
klein
Hey Rob,
super , echt vielen Dank!!!!
Funkt. einwandfrei:)
Nur noch eine extra Frage...
Ich habe eine voreingestellte Signatur die ich leider nicht entfernen kann.
Sobald eine neue Email erstellt wird , schreibt er mir automatisch die Signatur rein.
Nun will ich bevor ich meine Email schreiben lasse, den E-Mail-Inhalt der neuen Mail lösche und dann meine gewünschte Email schreibe.
Eine Art Clear Befehl?
Ist das möglich?
Alles andere funkt. einwandfrei!!!
Vielen Dank.
Grüße
klein
Anzeige
AW: Markierte Zeile in Excel in der E-Mail verschicken
11.09.2018 12:53:27
Rob
Du musst eigentlich nur strSignatur jeweils auskommentieren, dann fügt er auch keine Signatur mehr ein.
AW: Markierte Zeile in Excel in der E-Mail verschicken
11.09.2018 14:37:58
klein
Das ist eine Voreinstellung die ich nicht mehr ändern kann von Outlook, hat mit deinem Code nichts zutun:)
Da ich die Einstellung nicht ändern kann mit der Signatur, würde ich gerne beim erstellen einer neuen Email erst mal den E-Mailinhalt löschen.
Grüße und Danke
Anzeige
AW: Markierte Zeile in Excel in der E-Mail verschicken
11.09.2018 15:01:22
Rob
Wenn Du einfach mit Strg+A den Inhalt der Mail markierst und dann den Inhalt löscht? Geht das?
Ansonsten stellst Du Dir ein Makro in Outlook vor, das Dir den Inhalt einer neu geöffneten Mail löscht?
AW: Markierte Zeile in Excel in der E-Mail verschicken
12.09.2018 09:15:20
klein
Eigentlich stell ich mir ein Makro in Outlook for falls möglich.
Ein weiteres Problem ist aufgetaucht, Email verschicken funktioniert einwandfrei.
Aber sobald der Empfänger meine gesendete Email weiterleiten will bekommt er eine Fehlermeldung.
Ich habe gesehen das bei der Email was durch das Makro erstellt wird , er bei Kategorie die Wichtigkeit auf HOCH setzt. Kann ich das verhindern?
Danke für deine Bemühungen!
Grüße
Anzeige
.Importance = 1 (owT)
12.09.2018 11:34:08
EtoPHG

AW: Markierte Zeile in Excel in der E-Mail verschicken
12.09.2018 13:53:27
Rob

Sub DeleteMailContent()
SendKeys "^a"
SendKeys "{DEL}"
End Sub

;
Anzeige
Anzeige

Infobox / Tutorial

Markierte Zeile in Excel per E-Mail versenden


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade deine Tabelle mit den Daten.

  2. Markiere die Zeile, deren Inhalte du per E-Mail versenden möchtest.

  3. Füge den VBA-Code in das Excel-Arbeitsblatt ein:

    • Drücke Alt + F11, um den VBA-Editor zu öffnen.
    • Klicke auf Einfügen -> Modul und füge den folgenden Code ein:
    Sub ErsatzteileBestellung()
       Dim MarkierteZeile As Long
       Dim SystemSN, InstrumentPN As String
       MarkierteZeile = ActiveCell.Row
       SystemSN = Cells(MarkierteZeile, 9)
       InstrumentPN = Cells(MarkierteZeile, 11)
    
       Dim objOLOutlook As Object
       Dim objOLMail As Object
       Set objOLOutlook = CreateObject("Outlook.Application")
       Set objOLMail = objOLOutlook.CreateItem(0)
    
       With objOLMail
           .To = ""
           .CC = ""
           .BCC = ""
           .Subject = "Bestellung Ersatzteil"
           .Body = _
           "Hallo Bestellteam," & vbNewLine & _
           "ich benötige folgendes Ersatzteil" & vbNewLine & _
           "Kunde: XXX" & vbNewLine & _
           "Kundennummer: 111" & vbNewLine & _
           "Servicetyp: schnell" & vbNewLine & _
           "System SN: " & SystemSN & vbNewLine & _
           "Instrument PN: " & InstrumentPN & vbNewLine & _
           "Anzahl : 1" & vbNewLine & _
           "Vielen Dank."
           .Display
       End With
    
       Set objOLMail = Nothing
       Set objOLOutlook = Nothing
    End Sub
  4. Belege die Tastenkombination:

    • Gehe zu Entwicklertools -> Makros -> Optionen und wähle eine Tastenkombination (z.B. Strg + B).
  5. Führe das Makro aus, indem du die festgelegte Tastenkombination drückst.


Häufige Fehler und Lösungen

  • Problem: Das Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblatt eingefügt wurde. Du kannst auch den Code anpassen, um explizit auf das Arbeitsblatt zuzugreifen:
    SystemSN = Sheets(1).Cells(MarkierteZeile, 9)
    InstrumentPN = Sheets(1).Cells(MarkierteZeile, 11)
  • Problem: Der E-Mail-Inhalt wird nicht korrekt angezeigt.

    • Lösung: Überprüfe die Zellen, aus denen die Werte abgerufen werden. Stelle sicher, dass die richtigen Spalten angegeben sind.

Alternative Methoden

  • Du kannst auch ein Makro in Outlook erstellen, um den E-Mail-Inhalt zu löschen, bevor du den neuen Text eingibst. Hier ist ein einfaches Beispiel:
Sub DeleteMailContent()
    SendKeys "^a"
    SendKeys "{DEL}"
End Sub
  • Um die Wichtigkeit der E-Mail zu ändern, kannst du die Zeile .Importance = 2 (hoch) auf .Importance = 1 (niedrig) ändern.

Praktische Beispiele

  • Beispiel 1: Wenn du die Zeile mit den Kundendaten markierst und das Makro ausführst, wird eine E-Mail mit den spezifischen Daten aus der markierten Zeile erstellt.
  • Beispiel 2: Wenn du eine Signatur in Outlook hast, die du nicht entfernen kannst, kannst du die Signatur im VBA-Code auskommentieren.

Tipps für Profis

  • Du kannst die E-Mail-Vorlage anpassen, um weitere Informationen hinzuzufügen, die aus der Excel-Tabelle stammen.
  • Teste dein Makro gründlich, bevor du es in einer produktiven Umgebung einsetzt.
  • Verwende Debug.Print, um Werte während der Ausführung zu überprüfen, falls du Probleme hast.

FAQ: Häufige Fragen

1. Kann ich die E-Mail-Formatierung ändern?
Ja, du kannst die .BodyFormat-Eigenschaft in deinem VBA-Code anpassen, um verschiedene Formatierungen wie HTML oder Rich Text zu verwenden.

2. Wie kann ich den E-Mail-Versand automatisieren?
Wenn du die E-Mail automatisch senden möchtest, kannst du die .Display-Methode durch .Send ersetzen, aber sei vorsichtig, da dies die manuelle Überprüfung ausschließt.

3. Was mache ich, wenn Outlook nicht geöffnet wird?
Stelle sicher, dass Outlook auf deinem Rechner installiert und richtig konfiguriert ist. Überprüfe auch, ob Makros in Excel aktiviert sind.

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