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

Forumthread: E-Mail mit ausgewähltem Absender.

E-Mail mit ausgewähltem Absender.
11.10.2017 14:33:25
Schildi
Hallo
Es geht um Excel 2016. Das im Drop Down Auswahl fenster nicht aufgeführt ist.
Ich habe folgendes Problem:
Nach Update von Office 2007 auf Microsoft Office Professional Plus 2016 (32 bit) funktioniert mein E-Mail Makro nicht mehr einwandfrei. Bisher wurde als Absender das Standardkonto von Outlook ausgewählt. Jetzt wird aber meine Mailadresse die als Verbindung zum Officerkonto hinterlegt ist als Absender gewählt. Und mit keiner Funktion habe ich es geschafft den Absender nach meiner Wahl einzustellen. Je nach Anwendung soll ein anderer Absender und somit eine Antwort-Adresse gewählt werden können.
Jedoch in keinem Fall die Mailadresse mit der mein Officekonto verbunden ist.
Ich habe diverse Codes ausprobiert. Jedoch bei allen funktioniert der Absender nicht.
Weder SendUsingAccount noch SentOnBehalfOfName
Hier ist der letzte Code den ich getestet habe.
Alles andere funktioniert nur der Absender nicht
Sub EmailManuellAbsenden()
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
'Hier soll der Absender eingestellt werden. Ein Konto das in Outlook vorhanden ist
.To = "deinname@deinedomain.de"
.Subject = "Betreff"
.Body = "Ihre Nachricht."
.Display        'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend  _
manuell vom User!
End With
End Sub
Über Hilfe und eine Lösung wäre ich Dankbar.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: E-Mail mit ausgewähltem Absender.
11.10.2017 15:14:23
Oberschlumpf
Hallo
für Version: wählst du "Alle Versionen".
Aber ich dachte, in älteren Versionen als 2016, mind. 2007, funktioniert dein Code?
Wieso wählst du dann nicht "2013 - (bis) 365"?
Ich bin irritiert.
Ciao
Thorsten
p.s. ich nutze Office 2013. Bei mir funktioniert der Code problemlos.
Anzeige
AW: E-Mail mit ausgewähltem Absender.
11.10.2017 15:30:20
Schildi
Scheinbar habe ich nicht aufgepasst und zu sehr die 2013 gesehen.
Es geht hier aber um 2016.
Wie schon gesagt der vorliegende Code funktioniert für das versenden. Aber der Ich habe nicht gefunden wie ich den Absender nach meiner Wahl bestimmen kann.
SendUsingAccount
11.10.2017 15:28:37
Robert
Hallo Schildi,
Set .SendUsingAccount = .Session.Accounts.Item("Kontoname")
könnte die Lösung sein, siehe hier: http://www.rholtz-office.de/outlook/email_erstellen_teil5
Gruß
Robert
Anzeige
AW: SendUsingAccount
11.10.2017 15:40:33
Schildi
Hallo Robert,
danke für die Antwort. Klappt leider nicht.
Folgende Fehlermeldung.
Fehler beim kompilieren:
Unzulässiger oder nicht ausreichend definierter Verweis.
Dabei markiert der VBA Editor den ".Session" Teil nach dem Gleichheitszeichen
AW: SendUsingAccount
11.10.2017 16:32:23
Robert
Hallo Schildi,
wo hast Du denn die Zeile eingefügt? Wie es aussieht, ist die Zeile Teil des With-Blocks. Wenn sich die Zeile außerhalb Deines With-Blockes befindet, kommt diese Fehlermeldung.
Ich kann das bei mir leider nicht ausprobieren, da ich nicht mit Outlook arbeite.
Gruß
Robert
Anzeige
AW: SendUsingAccount
11.10.2017 22:24:42
Schildi
Danke für die erneute Nachricht.
Hatte erst gehofft das es daran lag.
Hatte die Zeile tatsächlich oberhalb von with.
Leider klappt es auch nicht innerhalb von with.
Hier lautet die Fehlermeldung:
Laufzeitfehler '5':
ungültiger Prozeduraufruf oder ungültiges Argument.
AW: SendUsingAccount
11.10.2017 22:47:47
mumpel
Hallo!
Hast Du Deinen Code so aufgebaut wie im Beispiel in meinem Workshop? Und hast Du Outlook 2007 oder höher? "SendUsingAccount" gibt es erst ab Outlook 2007.
Gruß, René
Anzeige
AW: SendUsingAccount
12.10.2017 21:11:58
Schildi
Hallo Rene,
ich habe Microsoft Office Professional Plus 2016 (32 bit)
und den folgenden Code
mit der Fehlermeldung
Laufzeitfehler '5':
ungültiger Prozeduraufruf oder ungültiges Argument.
Gruß Ralf
Sub EmailManuellAbsenden()
Dim objOutlook As Object
Dim objMail As Object
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
With objMail
Set .SendUsingAccount = .Session.Accounts.Item("Kontoname")
.To = "deinname@deinedomain.de"
.Subject = "Betreff"
.Body = "Ihre Nachricht."
.Display        'Erstellt die Email und öffnet diese. Der Versand erfolgt anschließend  _
manuell vom User!
End With
End Sub

Anzeige
AW: SendUsingAccount
12.10.2017 22:47:16
mumpel
Dein Konto heisst aber nicht "Kontoname". Statt "Kontoname" musst Du den Namen Deines Kontos angeben wie er in Outlook angezeigt wird.
Versuch mal:
Sub Emailtest()
Dim olApp As Object
Dim olOldBody As String

Set olApp = CreateObject("Outlook.Application")
    With olApp.CreateItem(0)
              .GetInspector.Display
          Set .SendUsingAccount = .Session.Accounts.Item("Kontoname")
              olOldBody = .htmlBody
              .to = "empfängerqserver.de"
              .Subject = "Test"
              .htmlBody = "Hallo,<br><br>ist nur ein Test<br><br><br>" & olOldBody
    End With
End Sub

VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Anzeige
AW: SendUsingAccount
13.10.2017 09:14:13
Schildi
Hallo Rene,
leider kommt auch hier folgende Fehlermeldung.
Laufzeitfehler '5':
ungültiger Prozeduraufruf oder ungültiges Argument.
PS Beim testen nehme ich selbstverszändlich richtige adressen und Absender.
Aber hier im Forum nehme ich dann doch Platzhalter.
Möchte mein Mailadressen nicht so einfach veröffentlichen.
Ich bin jetzt ein Paar Tage beruflich unterwegs. Danach werde ich Office nochmal deinstallieren und neu installieren. ggf 2013 und auch das nochmal testen..
Ich gebe dann eine Rückmeldung.
Bis hierhin erst mal vielen Dank an alle die mir helfen wollten.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

E-Mail mit ausgewähltem Absender in Excel


Schritt-für-Schritt-Anleitung

Um in Excel 2016 eine E-Mail mit einem ausgewählten Absender über VBA zu senden, kannst du den folgenden Code verwenden. Achte darauf, dass der Name des Absenderkontos genau so in Outlook hinterlegt ist.

Sub EmailManuellAbsenden()
    Dim objOutlook As Object
    Dim objMail As Object
    Set objOutlook = CreateObject("Outlook.Application")
    Set objMail = objOutlook.CreateItem(0)
    With objMail
        Set .SendUsingAccount = .Session.Accounts.Item("DeinKontoName") ' Ersetze "DeinKontoName" mit dem tatsächlichen Namen
        .To = "deinname@deinedomain.de"
        .Subject = "Betreff"
        .Body = "Ihre Nachricht."
        .Display ' Öffnet die E-Mail zur manuellen Versendung
    End With
End Sub

Stelle sicher, dass du die richtige Kontobezeichnung verwendest, um den Outlook absender korrekt zu setzen.


Häufige Fehler und Lösungen

  1. Fehler beim Kompilieren: Unzulässiger oder nicht ausreichend definierter Verweis

    • Dieser Fehler tritt auf, wenn die Zeile Set .SendUsingAccount = .Session.Accounts.Item("Kontoname") außerhalb des With-Blocks steht. Achte darauf, dass sie innerhalb des Blocks platziert ist.
  2. Laufzeitfehler '5': Ungültiger Prozeduraufruf oder ungültiges Argument

    • Dieser Fehler kann auftreten, wenn der angegebene Kontoname nicht existiert oder falsch geschrieben ist. Überprüfe die Kontonamen in Outlook und stelle sicher, dass sie exakt übereinstimmen.
  3. Standardkonto wird verwendet

    • Wenn nach der Anwendung des Codes weiterhin das Standardkonto verwendet wird, stelle sicher, dass der sendusingaccount korrekt gesetzt ist.

Alternative Methoden

Eine andere Möglichkeit, den Absender in Outlook zu ändern, ist die Verwendung des SentOnBehalfOfName. Dies erlaubt dir, eine E-Mail im Namen eines anderen Absenders zu senden:

With objMail
    .SentOnBehalfOfName = "anderer@deinedomain.de"
    ' Weitere Einstellungen wie .To, .Subject etc.
End With

Beachte, dass hierfür entsprechende Berechtigungen erforderlich sind.


Praktische Beispiele

Angenommen, du möchtest eine Serienmail versenden und die Absenderadresse ändern:

Sub SerienmailAbsenden()
    Dim olApp As Object
    Dim olMail As Object
    Set olApp = CreateObject("Outlook.Application")

    For i = 1 To 10 ' Beispiel für 10 Empfänger
        Set olMail = olApp.CreateItem(0)
        With olMail
            Set .SendUsingAccount = .Session.Accounts.Item("DeinKontoName")
            .To = "empfaenger" & i & "@deinedomain.de"
            .Subject = "Betreff"
            .Body = "Nachricht für Empfänger " & i
            .Send ' Sendet die E-Mail direkt
        End With
    Next i
End Sub

Hier wird das sendusingaccount für jeden Absender in der Schleife verwendet.


Tipps für Profis

  • Debugging: Nutze die Debugging-Tools in VBA, um den Code Schritt für Schritt zu prüfen und Fehlerquellen zu identifizieren.
  • Verwendung von Option Explicit: Füge am Anfang deines Moduls Option Explicit hinzu, um sicherzustellen, dass alle Variablen deklariert sind, was die Fehleranfälligkeit reduziert.
  • Sichere E-Mail-Adressen: Achte darauf, dass du beim Testen Platzhalter verwendest und deine echten E-Mail-Adressen nicht öffentlich machst.

FAQ: Häufige Fragen

1. Warum funktioniert SendUsingAccount nicht bei mir? Stelle sicher, dass du den genauen Kontonamen verwendest, wie er in Outlook angezeigt wird.

2. Kann ich SendUsingAccount in älteren Versionen von Outlook verwenden? Ja, SendUsingAccount ist ab Outlook 2007 verfügbar. Du musst jedoch sicherstellen, dass dein Excel VBA Code kompatibel ist.

3. Was kann ich tun, wenn der Absender nicht geändert wird? Überprüfe die Schreibweise des Kontonamens und stelle sicher, dass der Code im richtigen Kontext ausgeführt wird.

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