Die Excel Wühlkiste

Einzelnes Tabellenblatt per Outlook versenden

Oft kommt es vor, dass man ein Tabellenblatt einem Kollegen zur Verfügung stellen möchte, ohne gleich die ganze Arbeitsmappe in all ihrer verschwenderischen Pracht zu offenbahren.   :-)
Zweckmässigerweise wird dazu das Workbook unter einem anderen Namen gespeichert, alle weiteren Tabellenblätter in dieser neuen Mappe bis auf eines gelöscht und dann erst versendet. Anschließend wird diese, nur zum Zwecke des Versendens erstellte Mappe wieder gelöscht.
Diese Arbeit kann uns ein Makro komplett abnehmen. Die Arbeitsweise des Codes ist genau die gleiche, wie oben beschrieben. Allerdings müssen wir erst ein Outlook-Objekt erstellen, um Zugriff auf dieses Programm zu erhalten.
Wir können den kompletten Vorgang automatisieren, indem wir die für die Versendung relevanten Daten im Code unterbringen, oder sie an geeigneter Stelle auslesen.

Die Idee dazu habe ich aus einem Text von Melanie Breden in der deutschsprachigen Excel-Newsgroup entnommen und -wie sollte es anders sein- sogleich auf meine Bedürfnisse angepasst.

Sub Tabelle_versenden_als_EMail()

' Verweis auf Microsoft Outlook Bibliothek setzen
Dim objOL As Object
Dim objMail As Object

Dim Bezeichnung As String ' 1) oder As Range
Dim EMailan As String ' 2) oder As Range
Dim strName As String

Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)


'Set Bezeichnung = [Tabelle1!G27] ' 1)
Bezeichnung = ActiveWorkbook.Name

'Set EMailan = [Tabelle1!A2] ' 2)
EMailan = "Test@t-online.de"

strName = ActiveWorkbook.Path & "\Tabelle1 " _
& Format(Date, "DD.MM.YYYY") & ".xls"
' Range("G38").Value = strName

Application.ScreenUpdating = False
Sheets("Tabelle1").Copy
ActiveSheet.Name = "Tabelle1"
ActiveWorkbook.SaveAs strName

With objMail
.To = EMailan
.Subject = Bezeichnung
.Body = "Hallo Kollege"
.Attachments.Add ActiveWorkbook.FullName
.Display ' Display für Indirektversand oder .Send für Direktversand
End With

ActiveWorkbook.Close
Kill (strName)

' Meldung:
MsgBox ("Tabelle wurde erfolgreich versendet.")

Application.Goto Sheets("Tabelle1").Range("A1")
Application.ScreenUpdating = True

End Sub
Die Excel Wühlkiste
Valid HTML 4.01 Strict
letzte Aktualisierung: 13.02.2009
Autor: Hubert Scheidgen / 04.02.2009
W3C CSS-Validierungsservice