Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1544to1548
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

Tabellenblatt als Email Anhang

Tabellenblatt als Email Anhang
15.03.2017 22:25:54
Felix
Moin,
ich brauch mal wieder Eure Hilfe, da ich mir die Zähne an einem Problem ausbeiße.
Ich möchte ein Tabellenblatt an Outlook als Attachment übergeben. Das Attachment soll einen bestimmten haben.
Das kopieren der Datei und die Übergabe an Outlook funktionieren, aber ich den Dateinamen bekomme ich nicht verändert.
Muß die neu erstellte Datei dafür nicht nur umbenannt, sondern auch gespeichert werden?Wenn ja habe ich das nächste Problem, da ich auf Grund unserer IT nur auf Desktop oder "eigene Dateien" etwas zwischenspeichern kann. Dort sollte es dann auch gelöscht werden.
Ich hoffe ich mein Problem verständlich darlegen. Danke schon mal vorweg.
Hier der Code:
Option Explicit
Sub OL_Export()
'Define Variables
Dim Target As Object
Dim Source As Object
Dim Orderlist As Worksheet
Dim ProcessID As String
Dim Windfarm As String
Dim Package As String
Dim Adress As String
Dim n As Name
Dim Filename As String
ProcessID = Range("processID")
Windfarm = Range("Windfarm")
Package = Range("package")
Adress = Range("adress")
Filename = Format(ProcessID, "000") & " - " & Windfarm & " - " & Package & " - " & "Order  _
list"
'Neues Arbeitsblatt erstellen
Sheets.Add after:=Worksheets(Worksheets.Count)
'Define Source & Target - Target benennen
Set Source = ThisWorkbook.Worksheets(1)
Set Target = Worksheets(Worksheets.Count)
Target.Name = Format(ProcessID, "000") & " - " & "Order list"
'Quellbereich kopieren
Source.Columns("B:BD").Copy
Target.Paste Destination:=Sheets(Worksheets.Count).Columns("A:A")
Application.CutCopyMode = False
'Copy and Paste Header
Source.Range("D4:D8").Value = Target.Range("C4:C10").Value
Source.Range("f4:f8").Value = Target.Range("e4:e10").Value
'Überflüssige Spalten löschen
Target.Columns("AC:BB").Delete
'Zeilenhöhe Zeile 1 anpassen
Target.Rows("1:1").RowHeight = 40
'Alle benannte Bereiche löschen
For Each n In Target.Names
n.Delete
Next
'Target an email übergeben Mail
Target.Copy
ActiveWindow.Caption = Filename
Application.Dialogs(xlDialogSendMail).Show Adress, Format(ProcessID, "000") & " - " &  _
Windfarm & " - " & Package & " - " & "Order list"
'Target löschen
Application.DisplayAlerts = False
Target.Delete
Application.DisplayAlerts = True
End Sub

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt als Email Anhang
16.03.2017 06:28:49
fcs
Hallo Felix,
hier dein Makro mt Anpassungen, so dass anzuhängende Datei temporär gespeichert wird.
Du musst mal prüfen, welche Variante für das Verzeichnis für dich am besten passt.
LG
Franz
 Sub OL_Export_Test()
'Define Variables
Dim Target As Worksheet 'As Object
Dim Source As Worksheet 'As Object
Dim Orderlist As Worksheet
Dim ProcessID As String
Dim Windfarm As String
Dim Package As String
Dim Adress As String
Dim n As Name
Dim Filename As String, strPfadFilename As String
Dim wkbMail As Workbook
ProcessID = Range("processID")
Windfarm = Range("Windfarm")
Package = Range("package")
Adress = Range("adress")
Filename = Format(ProcessID, "000") & " - " & Windfarm & " - " _
& Package & " - " & "Order list"
'Neues Arbeitsblatt erstellen
Sheets.Add After:=Worksheets(Worksheets.Count)
'Define Source & Target - Target benennen
Set Source = ThisWorkbook.Worksheets(1)
Set Target = Worksheets(Worksheets.Count)
Target.Name = Format(ProcessID, "000") & " - " & "Order list"
'Quellbereich kopieren
Source.Columns("B:BD").Copy
Target.Paste Destination:=Sheets(Worksheets.Count).Columns("A:A")
Application.CutCopyMode = False
'Copy and Paste Header
Source.Range("D4:D8").Value = Target.Range("C4:C10").Value
Source.Range("f4:f8").Value = Target.Range("e4:e10").Value
'Überflüssige Spalten löschen
Target.Columns("AC:BB").Delete
'Zeilenhöhe Zeile 1 anpassen
Target.Rows("1:1").RowHeight = 40
'Alle benannte Bereiche löschen
For Each n In Target.Names
n.Delete
Next
'Target in neue Arbeitsmappe verschieben und temporär speichern
Target.Move
'Dateiname der an E-Mail anzuhängenden Datei inkl. Pfad - passende Variante auswählen
strPfadFilename = "C:\Users\" & VBA.Environ("USERNAME") & "\Desktop\" & Filename
strPfadFilename = VBA.Environ("HOMEDRIVE") & VBA.Environ("HOMEPATH") & "\" & Filename
strPfadFilename = VBA.Environ("mydocuments") & "\" & Filename
Set wkbMail = ActiveWorkbook
Application.DisplayAlerts = False
wkbMail.SaveAs Filename:=strPfadFilename, FileFormat:=51 'als xlsx speichern
Application.DisplayAlerts = True
'    ActiveWindow.Caption = Filename
'Arbeitsmappe an E-Mail übergeben
Application.Dialogs(xlDialogSendMail).Show Adress, Format(ProcessID, "000") & " - " & _
Windfarm & " - " & Package & " - " & "Order list"
wkbMail.Close savechanges:=False
'Datei wieder löschen
If Dir(strPfadFilename)  "" Then VBA.Kill (strPfadFilename)
End Sub

Anzeige
AW: Tabellenblatt als Email Anhang
16.03.2017 09:37:17
Felix
Prima, vielen Dank.
Nach erstem Test scheint der Code zu funktionieren.

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige