Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1116to1120
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Blatt über Outlook versenden

Blatt über Outlook versenden
Joachim
Hallo,
habe folgendes Problem.
Ich möchte mit einem Makro aus einer Mappe ein bestimmtes Blatt (z.B. Blatt 1)über Outlook als Anhang versenden. Ich befinde mich, wenn ich dieses Makro starte, nicht in diesem Blatt aber in der Mappe.
Der Empfänger (ein Fax) soll aus diesem Blatt aus Zelle B10 übernommen werden.
Betreff soll aus Zelle E21 übernommen werden.
Es soll kein Text geschrieben werden, sondern nur der Anhang versendet werden.
Vorab vielen Dank.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Blatt über Outlook versenden
14.11.2009 17:04:32
Josef
Hallo Joachim,
guckst du hier: http://www.rondebruin.nl/mail/folder2/mail2.htm
Statt ActiveSheet.Copy schreibst du Sheets("Blatt 1").Copy um ein Bestimmtes Blatt zu versenden.
Gruß Sepp

AW: Blatt über Outlook versenden
14.11.2009 17:04:42
IngGi
Hallo Joachim,
das geht zum Beispiel so:
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
Anzeige
AW: Blatt über Outlook versenden
14.11.2009 20:43:54
Joachim
Hallo Ingolf,
super, vielen Dank
2 Kleinigkeiten hätte ich da noch, wenn Du Lust hast.
1. Wenn ich Dein Makro ausführe, schließt sich meine ursprüngliche Mappe und die neue bleibt auf. Umgedreht wäre für mich sinnvoller, weil ich noch mehrere Mails versenden möchte.
2. Ich möchte mir das Blatt vor dem Versenden noch einmal anschauen (es wird bei jedem Senden neu aus anderen Bereichen der Mappe zusammengestellt), und daher wäre es schön, wenn ich den Button „Senden“ in Outlook selbst drücken könnte.
Dank an alle
AW: Blatt über Outlook versenden
15.11.2009 15:40:48
IngGi
Hallo Joachim,
die SendMail-Methode ist ziemlich eingeschränkt. Um die Nachricht in Outlook nochmal ansehen zu _ können, musst du einen anderen Weg wählen, nämlich Outlook von Excel aus fernsteuern:

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ß Ingolf
Anzeige
AW: Blatt über Outlook versenden
18.11.2009 21:24:04
Joachim
Hallo Ingolf,
funktioniert fast.
Outlook geht auf, Daten werden übernommen, aber beim Drücken auf „Senden“ kommt die Meldung “Die Methode „FullName“ für das Objekt „_Workbook“ ist fehlgeschlagen“.
Die Zeile „Kill wb.FullName“ in Visual Basic wird gelb hinterlegt.
Auf einem anderen Rechner kommt die Meldung Versenden nicht möglich, da das Objekt gelöscht wurde.
Gruß Joachim
AW: Blatt über Outlook versenden
19.11.2009 14:49:38
IngGi
Hallo Joachim,
mit einer kleinen Änderung sollte es gehen:
Sub 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.3size>
Gruß Ingolf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige