Wenns noch nicht klappt
Hallo zusammen,
wenn’s noch nicht klappt, versuch es mal hiermit. Bei mir funktioniert
es prima.
Gruß
Rolf
Hier der Text:
Ohne weiteres ist der Versand eines einzelnen
Blattes nicht moeglich. Sie koennen aber ein VBA-Makro
schreiben, das 1.) das aktive Blatt in eine neue, temporaere
Arbeitsmappe kopiert, 2.) diese Mappe per E-Mail sendet und
3.) die temporaere Mappe wieder loescht.
Dazu geben Sie im Visual Basic-Editor folgenden Prozedurcode
ein (am besten in ein Modul der „Persoenlichen
Makroarbeitsmappe“, PERSONL.XLS):
Sub SendActiveSheet()
Dim objSourceWb As Workbook
Dim objNewWb As Workbook
Dim strSubjectline As String
Dim strRecipient As String
Dim strTempPath As String
On Error GoTo SendError
strSubjectline = InputBox _
(Prompt:=„Wollen Sie das aktive Blatt senden?“ & _
String(2, vbCr) & _
„Geben Sie eine Betreffzeile ein“ & _
" oder klicken Sie auf Abbrechen.", _
Title:=„Aktives Blatt senden“)
If strSubjectline „“ Then
strRecipient = InputBox _
(„Bitte E-Mail-Empfaenger eingeben:“, _
Title:=„Aktives Blatt senden“)
If strRecipient „“ Then
Application.ScreenUpdating = False
Set objSourceWb = ActiveWorkbook
ActiveSheet.Copy
Set objNewWb = ActiveWorkbook
With objNewWb
.SaveAs "Auszug aus " & objSourceWb.Name
strTempPath = .FullName
.SendMail Recipients:=strRecipient, _
Subject:=strSubjectline
.Close SaveChanges:=False
Kill strTempPath
End With
Application.ScreenUpdating = True
End If
End If
SendEnd:
Set objNewWb = Nothing
Set objSourceWb = Nothing
Exit Sub
SendError:
MsgBox Prompt:="Fehler beim Senden des Blatts " & _
„(“ & Err.Number & „):“ & vbCr & _
Err.Description
Resume SendEnd
End Sub
Die Prozedur fragt zunaechst nach der Betreffzeile und dem
E-Mail-Empfaenger. Wenn Sie entsprechende Angaben machen,
kopiert sie das aktive Blatt in eine neue Arbeitsmappe und
verschickt diese mit der Excel-Standard-Funktion „SendMail“.
Per „Kill“-Anweisung wird die temporaere Arbeitsmappe
schliesslich wieder geloescht.
Um das VBA-Makro einzusetzen, aktivieren Sie in Excel das zu
verschickende Tabellenblatt. Dann druecken Sie Alt+F8, um
eine Liste verfuegbarer Makros anzuzeigen. Doppelklicken Sie
auf den Makronamen „SendActiveSheet“, um die
Programmausfuehrung zu starten.
Beachten Sie, dass beim Einsatz von Outlook 2003, 2002 oder
Outlook 2000 mit den neuesten Sicherheitsupdates vor dem
Mail-Versand ein Warnhinweis erscheint, sodass Sie dem
„Versand in Ihrem Namen“ erst zustimmen muessen. Das liegt
an den Sicherheitseinstellungen von Outlook und nicht an
Excel oder unserem Codebeispiel.