Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1504to1508
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

Makro EMail versenden via Outlook

Makro EMail versenden via Outlook
14.07.2016 10:54:48
amintire
Hallo, ich habe folgenden VBA Code der nicht richtig funktioniert.
Wo muss ich was ändern:
- Es soll Tabelle 1 verschickt werden
- Datei soll abgespeichert werden Test
- Mappe soll sich nach dem verschicken schließen
- Email Programm ist Outlook
Vielen Dank schon mal.
Grüße
Amintire
Option Explicit
Sub SendMail()
Dim MyMessage As Object, MyOutApp As Object
Dim SavePath As String
Dim AWS As String
'    SavePath = "H:" '"H:\Test\"
'Kopiert aktuelles Sheet in eine neue Mappe
'welche nur diese Tabelle enthält
ActiveSheet.Copy
'Speichert die Datei unter dem Tabellennamen und einem Zeitstempel
ActiveWorkbook.SaveAs SavePath & "\" & ActiveSheet.Name & "_" & Format(Now, "ddmmyyyy_hhmm") _
& ".xls"
'Mappenname wird an Variable übergeben
'und anschliessend gleich geschlossen
With ActiveWorkbook
AWS = .FullName
.Close
End With
'InitializeOutlook = True
Set MyOutApp = CreateObject("Outlook.Application")
'Nachrichtenobject erstellen
Set MyMessage = MyOutApp.CreateItem(0)
With MyMessage
.To = "max.mustermann@gmail.com"
.Subject = "Täglicher Test am " & Date
'Hier wird die temporär gespeicherte Datei als
'Attachment zugefügt
.Attachments.Add AWS
'Hier wird eine normale Text Mail erstellt
'.body = "Das ist ein Test" & vbCrLf & "Bitte ignorieren"
'Hier wird die HTML Mail erstellt
.HTMLBody = "Das ist ein Test." & vbCrLf & "Bitte ignorieren."
'Hier wird die Mail nochmals angezeigt
.Display
'Hier wird die Mail gleich in den Postausgang gelegt
'.Send
'Hier wird die temporäre Datei wieder gelöscht
Kill AWS
End With
MyOutApp.Quit
Set MyOutApp = Nothing
Set MyMessage = Nothing
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro EMail versenden via Outlook
14.07.2016 12:36:02
baschti007
Wlecher Fehler und wo kommt er ``?
Gruß Basti

AW: Makro EMail versenden via Outlook
14.07.2016 13:58:23
amintire
Hallo Basti,
als Laufzeitfehler '1004' kommt die Meldung
Excel kann auf die Datei C:F9844100 nicht zugreifen. Dies kann mehrere Gründe haben:
- Der Name des Dokuments oder der Pfad ist nicht vorhanden
- Das Dokument wird von einem anderen Programm verwendet.
- Der Name der Arbeitsmappe, die gespeichert werden soll, ist identisch zu dem Namen eines anderen Dokuments, welches Schreibgeschützt ist.
Folgendes ist Gelb markiert:
ActiveWorkbook.SaveAs SavePath & "\" & ActiveSheet.Name & "_" & Format(Now, "ddmmyyyy_hhmm") _
& ".xls"

Anzeige
AW: Makro EMail versenden via Outlook
14.07.2016 14:44:55
baschti007
Lad mal deine Beispiel Datei hoch dann ist so was einfacher.
Gruß Basti

AW: Makro EMail versenden via Outlook
14.07.2016 15:39:51
baschti007
Guck mal ob das bei dir geht
Gruß basti
Sub SendMyMail()
Dim ws As Worksheet
Set ws = ActiveSheet
Set objOL = CreateObject("Outlook.Application")
Set objMail = objOL.CreateItem(0)
ws.UsedRange.Copy
With objMail
.To = "max.muster@test.de"
.Subject = "Betreff"
.GetInspector().WordEditor.Range.Paste
.Display
End With
Set objOL = Nothing
End Sub

Anzeige
AW: Makro EMail versenden via Outlook
14.07.2016 15:46:50
amintire
Hallo Basti,
also damit wird Outlook geöffnet, kann nicht automatisch auch gleich verschickt werden?
Und wo wird die Datei gespeichert? Also, senden, drucken, speichern, schließen sollte dabei sein.
Grüße
Amintire
AW: Makro EMail versenden via Outlook
15.07.2016 07:30:14
baschti007
So was kann man immer sehr gut selber mit dem Makrorecorder herausfinden musst du mal versuchen dadurch lernt/versteht man besser VBA.
Sub datei_save()
Application.DisplayAlerts = False '-- Wenn datei vorhanden wird sie überschieben und es wird  _
nicht nachgefragt
ActiveWorkbook.SaveAs Filename:="C:\Users\" & Environ("USERNAME") & "\Desktop\Mappe1.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False                           _
'-- Wird auf dem Desktop gespeichert
End Sub

Sub datei_drucken()
Application.ActivePrinter = "\\S123456\P0001235 auf Ne08:" '----- Drucker Name anpassen
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

Gruß Basti
Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige