Microsoft Excel

Herbers Excel/VBA-Archiv

mit VBA aus Excel Datei Mail versenden

Betrifft: mit VBA aus Excel Datei Mail versenden von: C M
Geschrieben am: 04.11.2020 09:38:24

Hallo zusammen

Ich bin VBA Einsteiger. Ich habe eine Excel Arbeitsmappe. Wenn dort in Spalte 19 ein x steht, soll an die Mailadresse aus Spalte 18 eine Mail versendet werden. Das ist in jeder Zeile eine andere Adresse und es soll auch jede Mail einzeln versendet werden.

Ich habe untenstehenden Code gebastelt, aber es funktioniert nicht. Kann mir jemand helfen, was der Fehler ist? Meist kommt der Fehler Error Object.


Sub Mailversand()


Dim Mappe_Aufruf As Workbook

Set Mappe_Aufruf = Active Workbook


Dim collAdresses As Collection

Set collAdresses = New Collection


Dim objOutlook As Object

Dim objMail As Object


Dim sEMail_Address As String

Dim iRow As Integer


Set objOutlook =

CreateObject("Outllok.Application")


Set objMail = objOutlook.CreateItem(0)


For iRow = 2 To 20


If Cells(iRow, 19) = "x" Then

sEMail_Address = Cells(iRow, 18)

'< get EmailAddress >


If Contians(collAddresses,

sEmail_Address) Then


sEMail_Address = ""

End If


Dim recipient As recipient

If sEMail_Address<> ""Then

Set recipient " objEmail.Recipients.Add("sEmail_Address")


recipient.Type = oITo

End If

End If


Next


With objMail

.To = ""

.Subject = "Test"

.Body = "Test"

.CC = "examplemail"

.Display

End With

End Sub


Public Function Contains(coll As Collection, elem As Variant) As Boolean

Dim i As Integer

For i = 1 To coll.Count
If elem = coll(i) Then
Contains = True
Exit Function

End If

Next 'i = 1 To coll. Count
Contains = False

End Function

Betrifft: AW: mit VBA aus Excel Datei Mail versenden
von: Regina Resch-Jansen
Geschrieben am: 04.11.2020 10:15:06

Hi,
ich habe den Code mal etwas aufgeräumt und verkürzt. Hast Du den Code wirklich so irgendwo gefunden? Da waren eine Reihe Tippfehler und Logikfehler drin, das konnte so nicht funktionieren. Teste mal den folgenden Code, wobei Du an den markierten Stellen noch den Namen des Tabellenblattes ändern musst.
Außredem solltest Du Dir angewöhnen mit Option Explicit zu arbeiten, das vermeidet viele Fehler.
Sub Mailversand()

Dim objOutlook As Object
Dim objMail As Object
Dim sEMail_Address As String
Dim iRow As Long
Dim Mappe_Aufruf As Workbook

Set Mappe_Aufruf = ThisWorkbook
Set objOutlook = CreateObject("Outlook.Application")


For iRow = 2 To 20

    If Worksheets("Tabelle1").Cells(iRow, 19) = "x" Then   ' ggf. Blattname ändern
    
        sEMail_Address = Worksheets("Tabelle1").Cells(iRow, 18)   ' ggf. Blattname ändern
        
        If sEMail_Address <> "" Then
            Set objMail = objOutlook.CreateItem(0)
            With objMail
    
                .To = sEMail_Address
            
                .Subject = "Test"
            
                .Body = "Test"
            
                .CC = "examplemail"
            
                .Display

            End With
        
        End If
    
    End If

Next

End Sub
Gruß Regina

Betrifft: AW: mit VBA aus Excel Datei Mail versenden
von: C M
Geschrieben am: 04.11.2020 12:33:36

Danke Regina, perfekt! Du bist die Beste!

Betrifft: AW: mit VBA aus Excel Datei Mail versenden
von: Regina Resch-Jansen
Geschrieben am: 04.11.2020 12:40:22

... das hört man doch gerne :-) Danke für die Rückmelung.

Gruß Regina

Beiträge aus dem Excel-Forum zum Thema "mit VBA aus Excel Datei Mail versenden"