Microsoft Excel

Herbers Excel/VBA-Archiv

Email aus Excel versende Office 2016

Betrifft: Email aus Excel versende Office 2016 von: Toby...
Geschrieben am: 26.09.2020 14:04:10

Hallo!

Ich habe eine Excel Datei in der per Klick eine Email gesendet wir dmit Betreff und der Datei im Anhang.
Seit meinem Upgrade von Office 2010 auf 2016 hängt sich das Makro immer bei Applications.dialog auf.
Das Makro hat ir damals auch jemand hier i Forum geschrieben.
Hoffe ihr könnt mir erneut helfen:

Dim MailAddreasse

With Sheets("Verteiler")
MailAddreasse = .Range("A1", .Cells(Rows.Count, 1).End(xlUp))
End With

Application.Dialogs(xlDialogSendMail).Show MailAddreasse, Sheets("Tabellen").Range("E2")

Betrifft: AW: Email aus Excel versende Office 2016
von: Nepumuk
Geschrieben am: 26.09.2020 14:22:45

Hallo Toby,

teste mal:

Option Explicit

Public Sub CreateMail()
    
    Dim objOutlook As Object, objMail As Object
    Dim strMailAddress As String
    
    With Worksheets("Verteiler")
        strMailAddress = .Cells(.Rows.Count, 1).End(xlUp).Text
    End With
    
    Set objOutlook = CreateObject(Class:="Outlook.Application")
    Set objMail = objOutlook.CreateItem(0)
    
    With objMail
        
        .BodyFormat = 2
        .To = strMailAddress
        .Subject = "Betreff"
        .Body = "Hallo"
        Call .Display
        
    End With
    
    Set objMail = Nothing
    Set objOutlook = Nothing
End Sub

Gruß
Nepumuk

Betrifft: AW: Email aus Excel versende Office 2016
von: Toby...
Geschrieben am: 26.09.2020 14:49:09

Hallo!

Danke für die schnelle Antwort.
Es öffnet sich zumindest wieder.

Leider wird nur die letzte Email Adresse von 44 übernommen und die aktuelle Datei nicht angehängt.

Kannst du mir da auch weiterhelfen?

Toby...

Betrifft: AW: Email aus Excel versende Office 2016
von: Nepumuk
Geschrieben am: 26.09.2020 15:22:56

Hallo Toby,

so?

Public Sub CreateMail()
    
    Dim objOutlook As Object, objMail As Object
    Dim strMailAddress As String
    
    With Worksheets("Verteiler")
        strMailAddress = Join(Application.Transpose( _
            .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Value2), ";")
    End With
    
    Set objOutlook = CreateObject(Class:="Outlook.Application")
    Set objMail = objOutlook.CreateItem(0)
    
    With objMail
        
        .BodyFormat = 2
        .To = strMailAddress
        .Subject = "Betreff"
        .Body = "Hallo"
        Call .Attachments.Add(ActiveWorkbook.FullName)
        Call .Display
        
    End With
    
    Set objMail = Nothing
    Set objOutlook = Nothing
End Sub

Gruß
Nepumuk

Betrifft: AW: Email aus Excel versende Office 2016
von: Toby...
Geschrieben am: 26.09.2020 23:31:50

Perfekt. Vielen Dank!!!