Option
Private
Module
Sub
Absenden()
Dim
Source
As
Range
Dim
Dest
As
Workbook
Dim
wb
As
Workbook
Dim
TempFilePath
As
String
Dim
TempFileName
As
String
Dim
FileExtStr
As
String
Dim
FileFormatNum
As
Long
Dim
OutApp
As
Object
Dim
OutMail
As
Object
Set
Source = Range(
"A1:I27"
).SpecialCells(xlCellTypeVisible)
If
Not
Source
Is
Nothing
Then
With
Application
.ScreenUpdating =
False
.EnableEvents =
False
End
With
Set
wb = ActiveWorkbook
Set
Dest = Workbooks.Add(xlWBATWorksheet)
Source.Copy
With
Dest.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial Paste:=xlPasteValues
.Cells(1).PasteSpecial Paste:=xlPasteFormats
.Cells(1).
Select
Application.CutCopyMode =
False
End
With
TempFilePath = Environ$(
"temp"
) & "\"
TempFileName =
"Selection of "
& wb.Name &
" "
_
& Format(Now,
"dd-mmm-yy h-mm-ss"
)
If
Val(Application.Version) < 12
Then
FileExtStr =
".xlsx"
: FileFormatNum = -4143
Else
FileExtStr =
".xlsx"
: FileFormatNum = 51
End
If
Set
OutApp = CreateObject(
"Outlook.Application"
)
Set
OutMail = OutApp.CreateItem(0)
With
Dest
.SaveAs TempFilePath & TempFileName & FileExtStr, _
FileFormat:=FileFormatNum
On
Error
Resume
Next
With
OutMail
.GetInspector
.
To
=
"eine.email@weisnicht.de"
.CC =
""
.BCC =
""
.Subject =
"RE"
.Body =
"Rechnung"
& vbCrLf & .Body
.Attachments.Add Dest.FullName
.Display
End
With
On
Error
GoTo
0
.Close SaveChanges:=
False
End
With
Kill TempFilePath & TempFileName & FileExtStr
Set
OutMail =
Nothing
Set
OutApp =
Nothing
Range(
"G4"
).Value = Range(
"G4"
).Value + 1
With
Application
.ScreenUpdating =
True
.EnableEvents =
True
End
With
End
If
End
Sub