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

Forumthread: E-Mail Absenderkonto via VBA ändern

E-Mail Absenderkonto via VBA ändern
06.10.2014 17:03:26
lee
Hallo zusammen,
habe folgenden Code zusammengebaut, aber beim Absender habe ich ein Problem. Das Programm Outlook mit dem PDF Anhang wird geöffnet, aber der Absender ändert sich nicht. Vielleicht kann mir jemand weiterhelfen?
Danke+Gruß
lee
Sub AlsPDFSpeichern_und_senden()
Dim pdfName As String
Dim pdfOpenAfterPublish As Boolean
Dim olApp As Object
Dim strStandDatum As String
Dim strWorkbook As String
Rem Rückfragen, ob Datei nach dem Erstellen geöffnet werden soll
If MsgBox("Soll die PDF-Datei nach dem Erstellen angezeigt werden?", vbYesNo, "PDF anzeigen?") = _
vbYes Then pdfOpenAfterPublish = True
Rem Pfad und Name der PDF-Datei
strStandDatum = Left(Date, 2) & Right(Left(Date, 5), 2) & Right(Date, 4) ' z.B. 02102014
strWorkbook = ActiveWorkbook.Name
pdfName = ThisWorkbook.Path & "\test " & strStandDatum & ".pdf"
Rem PDF-Datei erstellen. Funktioniert nur in Excel 2007 oder höher, nicht in Excel 2003 oder ä _
lter
Workbooks(strWorkbook).Sheets("Report").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName,  _
_
Quality:=xlQualityStandard, IncludeDocProperties:=False,  _
IgnorePrintAreas:=True, _
OpenAfterPublish:=IIf(pdfOpenAfterPublish, True, False)
Rem Email erstellen
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.TO = Workbooks(strWorkbook).Sheets("E-Mail").Cells(1, 2).Value
'.CC = Range("Z2").Value
.Subject = Workbooks(strWorkbook).Sheets("E-Mail").Cells(2, 2).Value & Date
.htmlBody = Workbooks(strWorkbook).Sheets("E-Mail").Cells(3, 2).Value & "
" & " _
" & Workbooks(strWorkbook).Sheets("E-Mail").Cells(4, 2).Value & "
" & "
" & Workbooks(strWorkbook).Sheets("E-Mail").Cells(6, 2).Value & "
" & Workbooks(strWorkbook).Sheets("E-Mail").Cells(7, 2).Value & "
" & Workbooks(strWorkbook).Sheets("E-Mail").Cells(8, 2).Value .Attachments.Add pdfName .SendUsingAccount = .Session.Accounts.Item("mustermann@mustermann.com") .Display End With Rem Boolean-Variable "pdfOpenAfterPublish" zurücksetzen pdfOpenAfterPublish = False End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: E-Mail Absenderkonto via VBA ändern
06.10.2014 18:09:27
mumpel
Hallo!
1. Ohne "Set" ist "SendUsingAcount" nicth möglich. Setze also ein Set vor die Zeile.
Set .SendUsingAccount = .Session.Accounts.Item("Kontoname")
2. "SendUsingAccount" möglichst vor "To" initialisieren.
3. "SendUsingAccount" funktioniert nur wenn für jedes Emailkonto eine eigene PST-Datei (ein eigenes Konto) in Outlook existiert.
Gruß, René

Anzeige
AW: E-Mail Absenderkonto via VBA ändern
07.10.2014 12:21:52
lee
Hallo Rene, danke für die Hinweise!!
Gruß
lee

AW: E-Mail Absenderkonto via VBA ändern
07.10.2014 14:52:38
lee
Hallo zusammen,
ich habe mein Problem mit dem folgenden Code gelöst:
.SentOnBehalfOfName = ("mustermann@muster.de")
Super!Gruß
lee
;

Forumthreads zu verwandten Themen

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

E-Mail Absenderkonto in Outlook via VBA ändern


Schritt-für-Schritt-Anleitung

Um den Absender in Outlook über VBA zu ändern, folge diesen Schritten:

  1. VBA-Editor öffnen: Drücke ALT + F11 in Excel, um den VBA-Editor zu öffnen.

  2. Neues Modul erstellen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub AlsPDFSpeichern_und_senden()
       Dim pdfName As String
       Dim pdfOpenAfterPublish As Boolean
       Dim olApp As Object
       Dim strStandDatum As String
       Dim strWorkbook As String
    
       If MsgBox("Soll die PDF-Datei nach dem Erstellen angezeigt werden?", vbYesNo, "PDF anzeigen?") = vbYes Then
           pdfOpenAfterPublish = True
       End If
    
       strStandDatum = Left(Date, 2) & Right(Left(Date, 5), 2) & Right(Date, 4) ' z.B. 02102014
       strWorkbook = ActiveWorkbook.Name
       pdfName = ThisWorkbook.Path & "\test " & strStandDatum & ".pdf"
    
       Workbooks(strWorkbook).Sheets("Report").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, _
           Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=True, _
           OpenAfterPublish:=IIf(pdfOpenAfterPublish, True, False)
    
       Set olApp = CreateObject("Outlook.Application")
       With olApp.CreateItem(0)
           .SendUsingAccount = .Session.Accounts.Item("mustermann@mustermann.com") ' Absenderkonto festlegen
           .To = Workbooks(strWorkbook).Sheets("E-Mail").Cells(1, 2).Value
           .Subject = Workbooks(strWorkbook).Sheets("E-Mail").Cells(2, 2).Value & Date
           .htmlBody = Workbooks(strWorkbook).Sheets("E-Mail").Cells(3, 2).Value & "<br>" & _
                        Workbooks(strWorkbook).Sheets("E-Mail").Cells(4, 2).Value & "<br><br>" & _
                        Workbooks(strWorkbook).Sheets("E-Mail").Cells(6, 2).Value & "<br>" & _
                        Workbooks(strWorkbook).Sheets("E-Mail").Cells(7, 2).Value & "<br>" & _
                        Workbooks(strWorkbook).Sheets("E-Mail").Cells(8, 2).Value
           .Attachments.Add pdfName
           .Display
       End With
    
       pdfOpenAfterPublish = False
    End Sub
  4. Code anpassen: Ersetze "mustermann@mustermann.com" mit deiner gewünschten Absenderadresse. Achte darauf, dass du die richtigen Kontoinformationen in Outlook hast.

  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, um die E-Mail zu senden.


Häufige Fehler und Lösungen

  1. Fehler: Absender ändert sich nicht.

    • Lösung: Stelle sicher, dass du Set vor .SendUsingAccount verwendest.
      Set .SendUsingAccount = .Session.Accounts.Item("mustermann@mustermann.com")
  2. Fehler: "SendUsingAccount" funktioniert nicht.

    • Lösung: Überprüfe, ob für jedes E-Mail-Konto eine eigene PST-Datei in Outlook existiert.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du den Absender auch manuell in Outlook ändern:

  1. Outlook öffnen: Starte Microsoft Outlook.
  2. Neues E-Mail-Fenster: Klicke auf "Neue E-Mail".
  3. Absender auswählen: Klicke auf "Von" und wähle das gewünschte Konto aus der Liste aus.

Praktische Beispiele

  • Um den Absendernamen zu ändern, kannst du die Zeile .SentOnBehalfOfName = "mustermann@muster.de" in deinen VBA-Code einfügen. Dies ermöglicht es, im Namen eines anderen Absenders zu senden.
.SentOnBehalfOfName = "mustermann@muster.de"

Tipps für Profis

  • E-Mail-Adressdaten generieren: Nutze excel email adressen generieren, um schnell Adresslisten für den E-Mail-Versand zu erstellen.
  • Outlook-Konten verwalten: Achte darauf, deine Konten in Outlook gut zu organisieren, um Verwirrung bei der Auswahl des Absenders zu vermeiden.

FAQ: Häufige Fragen

1. Wie ändere ich den Absender in Outlook? Du kannst den Absender über die "Von"-Option in der neuen E-Mail ändern oder VBA verwenden, um den Absender programmatisch zu ändern.

2. Warum funktioniert .SendUsingAccount nicht? Stelle sicher, dass du Set verwendest und dass für jedes Konto eine separate PST-Datei in Outlook existiert.

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