Über Excel eine email versenden durch VBA

rene76

Lt. Commander
Registriert
Mai 2005
Beiträge
1.336
Hi,

ich habe eine Excel Tabelle wo ich Bestände führe. Wenm jedoch ein Mindestbestand erreicht ist soll beim Speichern der Tabelle eine email versendet werden. Jedoch scheitert bisher alles was ich versucht habe über VBA Scripte.

Ich benutze das hauseigene Outlook von Windows 11.

Auf der Arbeit nutze ich das gleiche Outlook Programm und da geht es nur mit dem Unterschied das dort eine Firmen email Adresse genutzt wird.

jetzt wollte ich das hier zu hause nachbauen und über einen gmx oder gmail smtp server zu senden


Sub SendeMail(text As String)

Dim objMail As Object
Set objMail = CreateObject("CDO.Message")

Dim objConf As Object
Set objConf = CreateObject("CDO.Configuration")

With objConf.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "mail.gmx.net"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 587
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "deine@gmx.de"
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "DEIN_PASSWORT"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Update
End With

With objMail
Set .Configuration = objConf
.From = "deine@gmx.de"
.To = "empfaenger@email.de"
.Subject = "Mindestbestand unterschritten!"
.TextBody = "Folgende Artikel sind unter Mindestbestand:" & vbCrLf & vbCrLf & text
.Send
End With

Set objMail = Nothing
Set objConf = Nothing

End Sub



da Outlook hier zu hause nicht funktioniert, warum auch immer das auf der Arbeit klappt mit diesem Script

Sub SendeMail(text As String)

Dim outlookApp As Object
Dim outlookMail As Object

On Error Resume Next
Set outlookApp = CreateObject("Outlook.Application")
Set outlookMail = outlookApp.CreateItem(0)

With outlookMail
.To = "deine@email.de"
.Subject = "Mindestbestand unterschritten!"
.Body = "Folgende Artikel sind unter Mindestbestand:" & vbCrLf & vbCrLf & text
.Send
End With

Set outlookMail = Nothing
Set outlookApp = Nothing

End Sub


Hat jemand eine Idee wie ich das umsetzen kann?
 
Sicher, dass das Outlook auf der Arbeit so arbeitet wie deins? Oder arbeitet das Outlook auf der Arbeit nicht doch eher per Exchange?
 
rene76 schrieb:
Ich benutze das hauseigene Outlook von Windows 11.
In W11 gibt es Outlook?! Ich dachte das heißt explizit anders - und hat wenn nicht mit MS-Office / 365 zu tun weswegen ich gewisse Befürchtungen habe, dass VBA es nicht greifen kann.
→ »Das neue ›Outlook für Windows‹« so meine VM. (Ich fasse alle mit dem Namen aus gewissen Gründen nur mit der Beißzange an…)

(Dummer Workaround: ein primitives Kommandozeilentool anstrengen wie CMAIL - das pariert wenigstens.)

CN8
 
Zuletzt bearbeitet:
@cumulonimbus8 also erstens gibt es in windows 11 kein hauseigenes outlook, das ist einfach falsch. und zweitens, warum soll vba nicht funktionieren, wenn man office oder 365 installiert hat? das ist doch der ganze sinn von vba, oder?
 
Und ist das Outlook zuhause die Microsoft-Store-Version und das Outlook auf der Arbeit die Microsoft365-Version?
 
kurgon181 schrieb:
warum soll vba nicht funktionieren, wenn man office oder 365 installiert hat?
Ich schrieb explizit, dass VBA das Bordwerkzeug nicht erreichen könnte/dürfte. Bei echtem Outlook keine Frage.
CN8
 
cumulonimbus8 schrieb:
In W11 gibt es Outlook?! Ich dachte das heißt explizit anders
Und wie bitte soll das heißen? Was ist denn das für eine Aussage?

Das Firmenoutlook greift eventuell nur Mails per Exchange ab und arbeitet auch per Exchange. Und das ist privat doch eher sehr selten zu sehen. Ich sehe das Problem jedenfalls auf diesem Weg. Denn privat wird hier ja mit gmx und gmail gearbeitet. Die bieten IMAP an, aber sicher kein Exchange.

cumulonimbus8 schrieb:
Bei echtem Outlook

Benenne bitte namentlich ein falsches Outlook. Danke.
 
kurgon181 schrieb:
also erstens gibt es in windows 11 kein hauseigenes outlook, das ist einfach falsch.
Laut Microsoft schon. Es ersetzt die "alte" Mail App.

https://www.microsoft.com/de-de/microsoft-365/outlook/outlook-for-windows?market=de

1774634645581.png
 
  • Gefällt mir
Reaktionen: JumpingCat
Das kann Outlook sicher immer, nur wird der Code anders sein. Du verräts ja nicht, ob auf der Arbeit Exchange rennt.
 
Stimmt. Wichtig wäre auch noch das classik zu benutzen und nicht das ehemalige "Mail" oder wie das hieß (nie genutzt).
Ergänzung ()

Welches Outllook hast du denn, wo kommt das her und kannst du mal die Version screenen?
 
.one schrieb:
Welches Outllook hast du denn, wo kommt das her und kannst du mal die Version screenen?
Screenshot 2026-03-27 191440.png
Diese Version die es auch im Store gibt
Ergänzung ()

redjack1000 schrieb:
Das kann man käuflich erwerben, z.B. direkt bei Microsoft.

Das macht ja dann keinen Sinn für mich dafür extra eine neue Mail Software zu kaufen
 
Das ist das "neue" Outlook. Kannste knicken. Geht nicht. Das ist am Ende niur eine Webdarstellung der Inhalte auf "deinem" Emailserver.

Du müsstest dir eine Lizenz für Outlook (oder 365) zulegen und gut ist. Ja, das kostet Geld.

Damit ist dann aber immer noch nicht gesagt, dass der Code von der Arbeit funktioniert. Denn Exchange kostet ganz anderes Geld. Viel mehr Geld.
 
.one schrieb:
Damit ist dann aber immer noch nicht gesagt, dass der Code von der Arbeit funktioniert. Denn Exchange kostet ganz anderes Geld. Viel mehr Geld.
Dann lass ich es wohl wenn es keine andere Lösung gibt zb. über externe mail server scheint es ja auch nicht zu funktionieren. Ich geb jetzt keien 160€ dafür aus.
 
Es gibt sicher eine Lösung mit Outlook. Mit dem kostenlosen eher nicht, aber beim Coden von VBA bin ich raus. Ich verstehe nur die Zusammenhänge und kann Code auch lesen, aber ich bin kein Coder.

Aber hier müsste ein Coder übernehmen, aber bei kostenlos vs. kostenlos (Outlook "NEW" vs. gmx/gmail) sehe ich da keine Chance.
 
Zurück
Oben