E-mailAnhang vba Excel
10.04.2007 08:34:00
Lars
ich habe vor kurzem ein Makro gefunden, welches ein bestimmtes Worksheet aus einer Mappe in eine andere Mappe überträgt und diese dann als Email-anhang versendet.
Nun möchte ich dieses Makro gern erweitern - und zwar so, dass ich eine bestimmte Auswahl an Tabellenblätter (z.B. Tabellenblätter A, B und D) in einer neuen Mappe per Email versenden kann.
Ich habe bereits versucht, ob es mit nem array funktioniert - hat leider nicht geklappt - oder ich habe es falsch eingebaut....
Kann mir jemand weiterhelfen?
Hier der Code:
Sub SpeichernSenden()
Dim Name As String, wb As Workbook, ws As Worksheet, _
BetreffDetail As String
Const olByValue = 1
Const olMailItem = 0
Dim oOApp
Dim oOMail
Dim Mail As Object
Set oOApp = CreateObject("Outlook.Application")
Set oOMail = oOApp.CreateItem(olMailItem)
Set wb = ActiveWorkbook
Set ws = wb.Sheets("A") '(Array("A", "B", "D"))
Set ws_2 = wb.Sheets("B")
Set ws_3 = wb.Sheets("D")
Name = "P:\t\team6\Monitoring\Temporary\MS_BÖ_aktuell.xls"
ws.Copy 'kopieren und neue Datei erstellen
'ws_2.Copy
'ws_3.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=Name, FileFormat:=xlNormal
Set ws = ActiveSheet
ws.Cells.Select 'alle markieren
ws.Select
Selection.Copy: Selection.PasteSpecial Paste:=xlValues 'kopieren und auf Werte setzen
Range("A1").Select
ActiveWorkbook.Save
ActiveWorkbook.Close 'schließen
Application.DisplayAlerts = True
With oOMail
.To = "L.W@web.de"
.cc = "B.B@web.de"
.Subject = "MS_BÖ_aktuell.xls"
.Body = Chr(13) & Chr(13) & _
"Sehr geehrter Herr Mustermann," & Chr(13) & Chr(13) & _
"in der Anlage sende ich Ihnen..." & Chr(13) & _
"bla bla bla" & Chr(13) & Chr(13) & _
"Mit freundlichen Grüßen," & Chr(13) & Chr(13) & _
"LW"
.attachments.Add Name, olByValue, 1 'Anhang einfügen
End With
oOMail.Display
'Application.Wait (Now + TimeValue("0:00:10")) 'warten bis alles versandt
Kill Name 'Datei löschen
End Sub