Sub senden()
With ActiveWorkbook
'Tabelle in neue Arbeitsmappe kopieren
.Sheets("Tabelle1").Copy
'Neue Arbeitsmappe versenden (das letzte Argument (True)
'fordert eine Lesebestätigung an, oder eben nicht (False)
.SendMail Range("B10"), Range("E21"), True
'Neue Arbeitsmappe schließen ohne zu speichern
.Close False
End With
End Sub
Gruß Ingolf
Sub senden()
Dim olApp As Object
Dim olMail As Object
Dim blnQuit As Boolean
Dim wb As Workbook
'Laufzeitfehler übergehen
On Error Resume Next
'Aktive Outlookinstanz übernehmen
Set olApp = GetObject(, "Outlook.Application")
'Falls Outlook nicht geöffnet
If olApp Is Nothing Then
'Merkvariable setzen
blnQuit = True
'Neue Outlookinstanz öffnen
Set olApp = CreateObject("Outlook.Application")
End If
'Bei Laufzeitfehlern wieder abbrechen
On Error GoTo 0
'Zu versendentes Tabellenblatt in eigene Datei auslagern
Sheets("Tabelle1").Copy
'Die Datei temporär speichern
Workbooks(Workbooks.Count).SaveAs Filename:="C:\Temp\Temp.xls"
'Neue Nachricht in Outlook erzeugen
Set olMail = olApp.CreateItem(0)
With olMail
'Zu versendende Datei in Variable übergeben
Set wb = Workbooks(Workbooks.Count)
'Empfänger festlegen
.To = ActiveSheet.Range("B10")
'Betreff festlegen
.Subject = ActiveSheet.Range("E21")
'Zu versendende Datei als Mailanhang beifügen
.Attachments.Add wb.FullName
'Fertige Mail anzeigen
.Display
End With
'Temporäre Datei schließen, ohne zu speichern
wb.Close False
'Temporäre Datei löschen
Kill wb.FullName
'Wenn neue Outlookinstanz geöffnet, diese wieder schließen
If blnQuit Then olApp.Quit
'Speicherbereiche freigeben
Set wb = Nothing
Set olMail = Nothing
Set olApp = Nothing
End Sub
Gruß IngolfSub senden()
Dim olApp As Object
Dim olMail As Object
Dim blnQuit As Boolean
Dim wb As Workbook
Dim strDatei As String
'Laufzeitfehler übergehen
On Error Resume Next
'Aktive Outlookinstanz übernehmen
Set olApp = GetObject(, "Outlook.Application")
'Falls Outlook nicht geöffnet
If olApp Is Nothing Then
'Merkvariable setzen
blnQuit = True
'Neue Outlookinstanz öffnen
Set olApp = CreateObject("Outlook.Application")
End If
'Bei Laufzeitfehlern wieder abbrechen
On Error GoTo 0
'Zu versendentes Tabellenblatt in eigene Datei auslagern
Sheets("Tabelle1").Copy
'Die Datei temporär speichern
Workbooks(Workbooks.Count).SaveAs Filename:="C:\Temp\Temp.xls"
'Neue Nachricht in Outlook erzeugen
Set olMail = olApp.CreateItem(0)
With olMail
'Zu versendende Datei in Variable übergeben
Set wb = Workbooks(Workbooks.Count)
'Empfänger festlegen
.To = ActiveSheet.Range("B10")
'Betreff festlegen
.Subject = ActiveSheet.Range("E21")
'Zu versendende Datei als Mailanhang beifügen
.Attachments.Add wb.FullName
'Fertige Mail anzeigen
.Display
End With
'Pfad und Name der temporären Datei in Variable übergeben
strDatei = wb.FullName
'Temporäre Datei schließen, ohne zu speichern
wb.Close False
'Temporäre Datei löschen
Kill strDatei
'Wenn neue Outlookinstanz geöffnet, diese wieder schließen
If blnQuit Then olApp.Quit
'Speicherbereiche freigeben
Set wb = Nothing
Set olMail = Nothing
Set olApp = Nothing
End Sub
Code eingefügt mit VBA in HTML 2.0.0.3