Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Mailversand mit Anhang

Betrifft: Mailversand mit Anhang von: Tom
Geschrieben am: 10.08.2008 09:44:49

Hallo zusammen,

habe eigentlich genau das im Archiv gefunden, was ich wollte - Mailversand an viele Empfänger.
Habe es auch etwas angepaßt. https://www.herber.de/bbs/user/54483.xls

Was mir jetzt noch fehlt, ist, dass ich gerne eine Datei aus dem Verzeichnis
(C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\Geburtstag1.jpg)
anhängen würde.

Hat jemand ne Idee?

Wäre echt super!

Gruß und Danke vorab

TOM

  

Betrifft: AW: Mailversand mit Anhang von: Martin Springer
Geschrieben am: 10.08.2008 09:57:30

Hallo Tom,

probier mal folgenden Code:

Sub Excel_Serienmail_via_Outlook_Senden()
    Dim OutApp As Object, Mail As Object
    Dim i As Integer
    Dim Nachricht
    For i = 1 To 10 'Anzahl der Mails
    'Variablen müssen bei jeder Schleife neu initalisiert werden
        Set OutApp = CreateObject("Outlook.Application")
        Set Nachricht = OutApp.CreateItem(0)
        With Nachricht
            .To = Cells(i, 1) 'Adresse
            .Subject = Cells(i, 2) 'Betreffzeile
            .AddAttachment "C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\ _
Geburtstag1.jpg"
            .Body = Cells(i, 3) & Chr$(10) & Chr$(10) & Cells(i, 4) & Chr$(10) & Chr$(10) &  _
Cells(i, 5) 'Sendetext
            'Hier wird die Mail gleich in den Postausgang gelegt
            'und die Sicherheitsabfrage muss jedesmall bestätigt werden
            '.Send
            'Hier wird die Mail "angezeigt"
            'aber gleich versendet,... OHNE Sicherheitsabrage
            .Display
            SendKeys "%s", True
        End With
        'Variablen zurücksetzen sonst geht es nicht
        Set OutApp = Nothing 'CreateObject("Outlook.Application")
        Set Nachricht = Nothing 'OutApp.CreateItem(0)
        Application.Wait (Now + TimeValue("0:00:01"))
    Next i
End Sub



Viele Grüße

Martin


  

Betrifft: AW: Mailversand mit Anhang von: Tom
Geschrieben am: 10.08.2008 10:08:37

Hallo Martin,

danke für die rasche Anhtwort - funktioniert so leider so nicht. Wird immer Fehler genau in dieser neuen Zeile gemeldet ...

Vielleicht hast Du noch ne andere Idee.

Gruß
TOM


  

Betrifft: AW: Mailversand mit Anhang von: Martin Springer
Geschrieben am: 10.08.2008 10:26:53

Okay, neuer Versuch:

Sub Excel_Serienmail_via_Outlook_Senden()
    Dim OutApp As Object, Mail As Object
    Dim i As Integer
    Dim Nachricht
    For i = 1 To 10 'Anzahl der Mails
    'Variablen müssen bei jeder Schleife neu initalisiert werden
        Set OutApp = CreateObject("Outlook.Application")
        Set Nachricht = OutApp.CreateItem(0)
        With Nachricht
            .To = Cells(i, 1) 'Adresse
            .Subject = Cells(i, 2) 'Betreffzeile
            .attachments.Add "C:\Dokumente und Einstellungen\All Users\Dokumente\Eigene Bilder\  _
Geburtstag1.jpg"
            .Body = Cells(i, 3) & Chr$(10) & Chr$(10) & Cells(i, 4) & Chr$(10) & Chr$(10) &  _
Cells(i, 5) 'Sendetext
            'Hier wird die Mail gleich in den Postausgang gelegt
            'und die Sicherheitsabfrage muss jedesmall bestätigt werden
            '.Send
            'Hier wird die Mail "angezeigt"
            'aber gleich versendet,... OHNE Sicherheitsabrage
            .Display
            SendKeys "%s", True
        End With
        'Variablen zurücksetzen sonst geht es nicht
        Set OutApp = Nothing 'CreateObject("Outlook.Application")
        Set Nachricht = Nothing 'OutApp.CreateItem(0)
        Application.Wait (Now + TimeValue("0:00:01"))
    Next i
End Sub



Viel Erfolg!


  

Betrifft: AW: Mailversand mit Anhang von: Tom
Geschrieben am: 10.08.2008 10:52:22

Hi Martin,

da fängt der Sonntag doch gleich super an - vielen Dank!

Kleine Zusatzfrage: GMeinst Du das es möglich ist, jeder Mailadresse einen anderen Dateianhang zuzuordnen - könnte dann z.B. in Spalte F als Hyperlink stehen ...

Nur, wenn es nicht zu viel Aufwand ist.

Gruß und danke nochmals

TOM


  

Betrifft: AW: Mailversand mit Anhang von: Martin Springer
Geschrieben am: 10.08.2008 11:10:20

Hallo Tom,

das dürfte eigentlich kein Problem sein. Mache es doch so, wie Du es bereits sonst mit der Schleife gelöst hast:

Wenn der Link als Textform in der Zelle steht:

.attachments.Add Cells(i, 6)

... oder wenn die Zelle direkt ein Hyperlink enthält:

.attachments.Add Cells(i, 6).Hyperlinks(1).Address

Viele Grüße


  

Betrifft: AW: Mailversand mit Anhang von: Tom
Geschrieben am: 10.08.2008 11:32:02

Hallo Martin,

wenn ich in Spalte F den Hyperlink C:\Dokumente und Einstellungen\Tom.TOM1\Desktop\Geb1.jpg eingebe, kommt die meldung, dass diese Datei hier nicht gefunden werden kann. Ich habe den Pfad aber aus den Eigenschaften des Bildes kopiert ....


  

Betrifft: AW: Mailversand mit Anhang von: Martin Springer
Geschrieben am: 10.08.2008 11:46:45

Hallo Tom,

das wundert mich allerdings auch. Probiere mal bitte folgende drei Sachen:

1. Verlinke die Zelle direkt mit der anzuhängenden Datei (Strg+k oder mit "Einfügen" und "Hyperlink...") und nutze .attachments.Add Cells(i, 6).Hyperlinks(1).Address

2. Ohne Hyperlink ".attachments.Add Cells(i, 6).Text" verwenden

3. Kontrolliere per Makro, ob der Dateipfad stimmt. Markiere die betreffende Zelle und starte folgendes Makro:

Sub Kontrolle_Dazteipfad()
    If Dir(ActiveCell.Text) = "" Then
        MsgBox "Der Dateipfad kann nicht gefunden werden!"
    Else
        MsgBox "Der Dateipfad stimmt!"
    End If
End Sub



Oder falls Pfad als Hyperlink in die Zelle eingefügt ist:

Sub Kontrolle_Dazteipfad()
    If Dir(ActiveCell.Hyperlinks(1).Address) = "" Then
        MsgBox "Der Dateipfad kann nicht gefunden werden!"
    Else
        MsgBox "Der Dateipfad stimmt!"
    End If
End Sub



Viel Erfolg.


  

Betrifft: AW: Mailversand mit Anhang von: Tom
Geschrieben am: 10.08.2008 11:57:24


1. Verlinke die Zelle direkt mit der anzuhängenden Datei (Strg+k oder mit "Einfügen" und "Hyperlink...") und nutze .attachments.Add Cells(i, 6).Hyperlinks(1).Address -- Genauso ausgeführt, Dateipfad nicht gefunden

2. Ohne Hyperlink ".attachments.Add Cells(i, 6).Text" verwenden -- funktioniert nicht

3. Kontrolliere per Makro, ob der Dateipfad stimmt. Markiere die betreffende Zelle und starte folgendes Makro -- DATEIPFAD IST KORREKT

Kurios oder?


  

Betrifft: AW: Mailversand mit Anhang von: Tom
Geschrieben am: 10.08.2008 11:59:05

Anbei nochmal die "neue" Datei: https://www.herber.de/bbs/user/54486.xls

Evtl. findest Du den Fehler so schneller ...

Danke
TOM


  

Betrifft: AW: Mailversand mit Anhang von: Martin Springer
Geschrieben am: 10.08.2008 12:57:59

Hallo Tom,

leider habe ich jetzt keine Zeit mehr. Ich habe aber herausbekommen warum die Hyperlink-Funktion nicht funktioniert: Der Dateipfad des Anhangs wird relativ statt absolut übergeben:
"..\..\All Users\Dokumente\Eigene Bilder\Beispielbilder\Winter.jpg" statt mit "C:\Dokumente und Einstellungen" usw. zu beginnen.
Leider habe ich kein Outlook auf meinem Rechner installiert und kann das Makro daher nicht testen. Gib mir mal Deine Email-Adresse, damit ich mich später damit beschäftigen kann.

Probiere mal bitte noch ".attachments.Add Trim(Cells(i, 6).Text)

Viele Grüße

Martin


  

Betrifft: AW: Mailversand mit Anhang von: Tom
Geschrieben am: 10.08.2008 19:13:38

Hallo Martin,

.attachments.Add Trim(Cells(i, 6).Text) funktioniert !!!
Super!

Wenn ich dann in Spalte G auch noch einen Hyperlink setze, funktioniert dieser Zusatz auch noch:


With Nachricht
.To = Cells(i, 1) 'Adresse
.Subject = Cells(i, 2) 'Betreffzeile
.attachments.Add Trim(Cells(i, 6).Text)
.attachments.Add Trim(Cells(i, 7).Text)


Wehe aber, im Spalte G ist die Zelle leer ..., dann bricht es ab.
Kann man das variabel gestalten (auch für weitere Spalten H, I, J usw) ???

Jetzt hast Du aber wirklich viel für mich getan!

Danke vielmals

TOM - privat: fraggle1973@web.de


 

Beiträge aus den Excel-Beispielen zum Thema "Mailversand mit Anhang"