Workbook & Variable
04.09.2003 09:35:18
Martin
Eine Exceldatei führt folgendes Makros auf Wunsch aus
1. Eine bestimmte Tabelle (Sheet) aus der Arbeitsmappe wird in ein neues Workbook kopiert
2. Dieses neue Workbook soll per Outlook verschickt werden (ohne vorher abgzuspeichern!). Die Rezipienten sind in einem Sheet des Ausgangsworkbook aufgelistet und werden per zweitem Makro ausgelesen.
Das Problem, das ich habe, ist, dass ich das neu erstellte Workbook nicht ansprechen kann, da es ja nicht abgespeichert werden soll. Die Versuche, es mittels Variablen anzusprechen sind bisher gescheitert. Hier meine beiden Makros.
Wo liegt der Fehler? Das Makro unten lädt das Ausgangsworkbook, nicht aber das frisch erstellte in Outlook.
Dim NewWB As Workbook
Sub CopySheet()
On Error Resume Next
ActiveSheet.Cells.Select
Selection.Copy
Range("B10").Select
Workbooks.Add
Set NewWB = ThisWorkbook
Selection.PasteSpecial Paste:=xlValues
Selection.PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False
Range("B10").Select
With ActiveWindow
.DisplayGridlines = False
.DisplayHeadings = False
End With
Workbooks("Ausgangsworkbook").Activate
SendSheet
End Sub
Sub SendSheet()
Dim objOutlook As Object
Dim objMail As Object
Dim i As Integer
Dim strTO As String
Dim strCC As String
Dim MailSubj As String
Set objOutlook = CreateObject("Outlook.Application")
Set objMail = objOutlook.CreateItem(0)
On Error Resume Next
' // "MAIL TO"
For i = 1 To Range("MailTO").Rows.Count
strTO = strTO & Range("MailTO").Rows(i).Value & ";"
Next i
'// "MAIL CC"
For i = 1 To Range("MailCC").Rows.Count
strCC = strCC & Range("MailCC").Rows(i).Value & ";"
Next i
'// SUBJECT
MailSubj = ThisWorkbook.Sheets("Mail").Range("MailSubj")
With objMail
.To = strTO
.cc = strCC
.Subject = MailSubj
'.Body = ""
.Attachments.Add NewWB.FullName 'ActiveWorkbook.FullName
.Display
.ReadReceiptRequested = False
End With
Set objOutlook = Nothing
Set objMail = Nothing
End Sub
Gruss,
Martin