Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1716to1720
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 mit Dateiversand

Makro mit Dateiversand
09.10.2019 09:24:35
Harald
Hallo habe folgende Code im Internet gefunden welcher auch super funktioniert.
Er verschickt das aktuelle Tabellenblatt per Outlook an eine definierte E-Mail-Adresse.
Mein Wunsch wäre jetzt dass der Versand nicht über Outlook passiert, sprich dass ein Mail generiert wird welches dann seperat versendet werden muss, sondern dass das Mail automatisch im Hintergrund versendet wird und der Benutzer erhält nur eine kurze Nachricht wie "Vielen Dank, Ihre Einmeldung wurde versendet!"
Viele Dank!
Hier der Code
Sub einzelnes_Blatt_senden()
'** Das aktive Tabellenblatt wird über Outlook versendet
'** Dimensionierung der Variablen
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
Dim outObj As Object
Dim Mail As Object
Dim strBodyText As String
Set outObj = CreateObject("Outlook.Application")
Set Mail = outObj.CreateItem(0)
'** Pfad für temporäre Zwischenspeicherung angeben
strPfad = "C:\Data" 'entsprechend anpassen
'** Aktuelles aktives Blatt in neue Arbeitsmappe kopieren
strBlatt = ActiveSheet.name
'** Gewähltes Tabellenblatt kopieren
Sheets(strBlatt).Copy
'** Blatt temporär in vorgegebenes Verzeichnis abspeichern
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.name
'** Pfad und Dateiname der neuen Datei zwischenspeichern
strDatei = ActiveWorkbook.FullName
'** Mail erzeugen
With Mail
.to = Worksheets("Einmeldung").Range("B10").Text
.cc = "ideenzirkel@smw.at"
.Subject = "Einmeldung Ideenzirkel" 'Betreff
.BodyFormat = 2 '2 = HTML, 1 = Text
.Attachments.Add strDatei 'Anhang
.Body = "Text" 'Bodytext / Signatur
End With
'** Erzeugte Datei schließen
Workbooks(Dir(strDatei)).Close
'** Erzeugte Datei wieder löschen
Kill (strDatei)
'** E-Mail anzeigen
Mail.Display
End Sub

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro mit Dateiversand
09.10.2019 09:52:39
Torsten
Hallo Harald,
so:

Sub einzelnes_Blatt_senden()
'** Das aktive Tabellenblatt wird über Outlook versendet
'** Dimensionierung der Variablen
Dim strBlatt As String
Dim strDatei As String
Dim strPfad As String
Dim outObj As Object
Dim Mail As Object
Dim strBodyText As String
Set outObj = CreateObject("Outlook.Application")
Set Mail = outObj.CreateItem(0)
'** Pfad für temporäre Zwischenspeicherung angeben
strPfad = "C:\Data" 'entsprechend anpassen
'** Aktuelles aktives Blatt in neue Arbeitsmappe kopieren
strBlatt = ActiveSheet.Name
'** Gewähltes Tabellenblatt kopieren
Sheets(strBlatt).Copy
'** Blatt temporär in vorgegebenes Verzeichnis abspeichern
ActiveWorkbook.SaveAs strPfad & "\" & ActiveSheet.Name
'** Pfad und Dateiname der neuen Datei zwischenspeichern
strDatei = ActiveWorkbook.FullName
'** Mail erzeugen
With Mail
.To = Worksheets("Einmeldung").Range("B10").Text
.CC = "ideenzirkel@smw.at"
.Subject = "Einmeldung Ideenzirkel" 'Betreff
.BodyFormat = 2 '2 = HTML, 1 = Text
.Attachments.Add strDatei 'Anhang
.Body = "Text" 'Bodytext / Signatur
End With
'** Erzeugte Datei schließen
Workbooks(Dir(strDatei)).Close
'** Erzeugte Datei wieder löschen
Kill (strDatei)
'** E-Mail anzeigen
'Mail.Display
'**E-Mail versenden
Mail.Send
MsgBox "Vielen Dank, Ihre Einmeldung wurde versendet!"
Set Mail = Nothing
Set outObj = Nothing
End Sub
Den Email Text musst du in dieser Zeile natuerlich noch anpassen, wie er versendet werden soll:
.Body = "Text"
Gruss Torsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige