Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1352to1356
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hallo Klaus, hilfst Du mir bitte noch einmal

Hallo Klaus, hilfst Du mir bitte noch einmal
12.03.2014 18:05:27
Larissa
Hallo Klaus,
Du erinnerst Dich sicher noch an mich ;-)
Ich möchte jetzt mit meiner Serienmail mehrere Anhänge verschicken. Genau gesagt 4. Der Pfad steht jeweils in Sheet "NL_Text" in Zelle C2, D2, E2 und F2
Alle meine Versuche das Makro entsprechend anzupassen scheiterten gnadenlos.
Hier kannst Du sehen, was ich verzapft habe .... Bitte nicht lachen :-D
https://www.herber.de/bbs/user/89648.xlsm
Ich freue mich auf Deine Lösung
Besten Gruß,
Larissa

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

Betreff
Datum
Anwender
Anzeige
AW: Hallo Klaus, hilfst Du mir bitte noch einmal
13.03.2014 08:28:53
Klaus
Hallo Larissa,
Du hattest es schon fast richtig! Die att2,3,4 Variablen deklariert, den Pfad zugewiesen ... was dir noch fehlte war, die Variablen an das Outlook-Makro zu übergeben und dort die Zeile "Attachement.Add" zu vervierfachen.
Ich habe es mir mal einfach gemacht und hänge die 4 Attachements direkt im Outlook-Makro an, statt sie per Variable zu übergeben:
  Sub SendAllx()
Dim sSheet As String
Dim sText As String
Dim sTo As String
Dim sSubject As String
Dim lRow As Long
Dim myRng As Range
With Sheets("Pending")
lRow = .Cells(.Rows.Count, 7).End(xlUp).Row
sSubject = Sheets("NL_Text").Range("A2").Value
For Each myRng In .Range(.Cells(2, 7), .Cells(lRow, 7))
If myRng.Value = "x" Then
sTo = .Cells(myRng.Row, 8).Value
sText = .Cells(myRng.Row, 5) & "/br/ /br/" & Sheets("NL_Text").Range("B2").Value
sText = "/font face=""Calibri""/" & sText & "//font/"
Call SendMailOutlook(sSubject, sTo, sText)
End If
Next myRng
End With
End Sub
Private Sub SendMailOutlook(sSubject As String, sTo As String, sText As String)
Dim olApp         As Object
Dim olOldBody     As String
'Make Email
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = sTo
.Subject = sSubject
.htmlBody = sText & olOldBody
.Attachments.Add Sheets("NL_Text").Range("C2").Value
.Attachments.Add Sheets("NL_Text").Range("D2").Value
.Attachments.Add Sheets("NL_Text").Range("E2").Value
.Attachments.Add Sheets("NL_Text").Range("F2").Value
End With
End Sub
Das HTML hab ich fix "maskiert", damit das Forum nicht verrückt spielt. Mach statt // wieder die größer-kleiner Zeichen hin, jaß
Grüße,
Klaus M.vdT.

Anzeige
Danke, das klappt prima!
13.03.2014 19:18:52
Larissa
Hallo Klaus,
so funktioniert es natürlich wieder mal super.
Freut mich, dass mein Ansatz schon mal in die richtige Richtung ging ;-)
Viele Grüße,
Larissa

Gerne! (mit Text und Verbesserung)
14.03.2014 07:45:37
Klaus
Hallo Larissa,
so funktioniert es natürlich wieder mal super.
aber nur, solange es exakt vier Anhänge sind!
Mit dieser Variante schaut er ab C2 immer eine Zelle nach rechts, ob es noch einen weitern Anhang gibt.

Private Sub SendMailOutlook(sSubject As String, sTo As String, sText As String)
Dim olApp         As Object
Dim olOldBody     As String
Dim iCol As Long
Dim lCol As Long
'Make Email
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = sTo
.Subject = sSubject
.htmlBody = sText & olOldBody
With Sheets("NL_Text")
lCol = .Cells(2, .Columns.Count).End(xlToLeft).Column
For iCol = 3 To lCol
.Attachments.Add .Cells(2, iCol).Value
Next iCol
End With
End With
End Sub
Noch was: falls in einer deiner Anhang-Zellen ein ungültiger Pfad steht, schmiert das Makro gnadenlos ab. Dagegen könnte man eine Fehlerbehandlung einbauen, falls das nötig ist. Interesse?
Grüße,
Klaus M.vdT.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige