gundelputz
Goto Top

Email aus Excel 2010 mit VBa versenden

Hallo da draussen,
ich möchte in Excel 2010 eine Email versenden die nur einen Betreff und eine Textnachricht enthält.
Bisher habe ich das so gelöst:

Sheets("Bestellform").Select
Sheets("Bestellform").Copy
ActiveWorkbook.SendMail "xxx.yyyy@abcde.de", "Ersatzteilbestellung"
Application.DisplayAlerts = False
ActiveWindow.Close
Application.DisplayAlerts = True

hier habe ich aber zwei Probleme. Zum einen wird dir ausgewählte Tabelle mitgeschickt und zum anderen möchte ich den Empfänger variabel halten.
Meine Fragen daher sind:
- wie kann ich eine einfache Email versenden die nur einen Betreff und eine Textnachricht enthält?
- wie kann ich die Empfänger variabel gestallten?

Content-Key: 237242

Url: https://administrator.de/contentid/237242

Printed on: April 19, 2024 at 17:04 o'clock

Member: colinardo
Solution colinardo May 06, 2014 updated at 08:09:46 (UTC)
Goto Top
Hallo Gundelputz,
wenn du Outlook nutzt kannst du es so machen:
Set objOutlook = CreateObject("Outlook.Application")  
Set objMail = objOutlook.CreateItem(0)
With objMail
	.To = "empfänger@email.de"  
	.Subject = "Betreff"  
	.Body = "Dein Body"  

        'Nachricht zur Kontrolle anzeigen  
	.Display

        'Oder direkt senden  
        '.Send  
End With
Falls du kein Outlook verwenden solltest kannst du die Mail auch direkt via CDO verschicken, ein Beispiel-Code dazu findest du hier:
Massen E-Mail-Versand aus VBA Excel - Outlook Sicherheitsmeldung

Grüße Uwe
Member: Gundelputz
Gundelputz May 06, 2014 at 08:11:00 (UTC)
Goto Top
Wie immer sind deine Lösungen genau das was ich gesucht habe.
Einfach genial.
Vielen Dank
Member: Gundelputz
Gundelputz May 06, 2014 at 12:16:33 (UTC)
Goto Top
Hi Uwe,
eine Frage hab ich noch.
Ich möchte im Body einen Text mit Zeilenumbrüchen schreiben. Dachte eigendlich ich wüsste wie das geht. Habs dann mal so gemacht:

.Body = "Für folgendes Gerät wurde ein Toner bestellt." & _
lbl_maschine_to_an.Caption & _
lbl_sn_to_an.Caption & _
"Sollte dies nicht ihr Gerät sein oder sich der Standortgeändert haben teilen sie mir dieses bitte mit" & _
"Der Toner liegt von Mo. bis Fr. zwischen 7:00 und 11:30 im Lager für sie bereit." & _
"mit freundlichen Grüssen"

Leider ohne Erfolg.
Du kannst mir da bestimmt noch mal helfen.
Member: colinardo
Solution colinardo May 06, 2014 updated at 13:01:11 (UTC)
Goto Top
verbinde die Zeilen mit vbNewLine:
.Body = "Für folgendes Gerät wurde ein Toner bestellt." & vbNewLine & lbl_maschine_to_an.Caption & vbNewline & .............  
Anstatt vbNewLine lässt sich auch vbCrLf oder chr(13) für Zeilenumbrüche nutzen.

Das was du machst ist nur ein Zeilenumbruch im Quellcode, und nicht im Ausgabestring.
Member: Gundelputz
Gundelputz May 06, 2014 at 13:01:42 (UTC)
Goto Top
Vielen Dank noch mal.
Member: JensDND
JensDND Apr 26, 2016 at 11:00:41 (UTC)
Goto Top
Hallo,

ich hänge mich hier mal mit rein face-smile
Wenn ich als "Body" eine selection.copy in die Mail einfügen möchte, wie geht das denn?

LG Jens
Member: colinardo
colinardo Apr 26, 2016 updated at 14:42:48 (UTC)
Goto Top
Hallo Jens.
Zitat von @JensDND:
ich hänge mich hier mal mit rein face-smile
Sehen wir hier eigentlich nicht so gerne. Normalerweise machen wir hier einen neuen Thread dazu auf, schon im Interesse des TO! Bitte fürs nächste mal berücksichtigen. Merci.
Wenn ich als "Body" eine selection.copy in die Mail einfügen möchte, wie geht das denn?
Zum kopieren der aktuell selektierten Zellen und anschließendes Einfügen der Zwischenablage in eine Mail :
Sub SendMyMail()
    Set objOL = CreateObject("Outlook.Application")  
    ' Neue Mail erstellen  
    Set objMail = objOL.CreateItem(0)
    ' Aktuell markierte Zellen kopieren  
    Selection.Copy
    With objMail
        .Subject = "testmail"  
         ' Zwischenablage einfügen  
        .GetInspector().WordEditor.Range.Paste
        ' Mail anzeigen  
        .Display
    End With
    Set objOL = Nothing
End Sub
Grüße Uwe
Member: JensDND
JensDND Apr 26, 2016 at 12:20:26 (UTC)
Goto Top
Sorry, wird ich mir merken!!
Hat aber einwandfrei geklappt, DANKE!

LG Jens