Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1696to1700
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

Excel als PDF > XLSX > Email angang

Excel als PDF > XLSX > Email angang
21.06.2019 11:40:03
botfaehig
Hallo zusammen,
brauche mal wieder eure Unterstützung. :-)
ich muss täglich mehrere Exceltabellen speichern und diese als Email versenden.
ich möchte das automatisieren!
Also bestimmtes Tabellenblatt als .xlsx und als .pdf speichern und .pdf in Email öffnen und anhängen. (immer gleicher text. Betreff Name der PDF Datei reicht aus)
Hier habe ich einen Ansatz gefunden und ausprobiert, es geht...
kann bitte jemand mich mit dem Rest unterstützen?
Vielen Dank
Private Sub CommandButton1_Click()
ChDir "C:\Users\asafarr1\Desktop\Testordner\"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("F5").Value & Format(Date, "Test YYYYMMDD") & ".pdf", Quality:=xlQualityStandard,  _
_
_
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub

26
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel als PDF > XLSX > Email angang
21.06.2019 12:11:31
Torsten
Hallo botfaehig,
probier mal:

Private Sub CommandButton1_Click()
Dim FName As String
ChDir "C:\Users\asafarr1\Desktop\Testordner\"
FName = Range("F5").Value & Format(Date, "Test YYYYMMDD") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FName, Quality:=xlQualityStandard,  _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'als Email versenden
Application.DisplayAlerts = False
Dim Email As Object, OutApp As Object
Dim AWS As String, strOldBody As String
Dim InitializeOutlook
Set xRg = Sheets("Sheet1").Range("A1:C" & a)
Set OutApp = CreateObject("Outlook.Application")
AWS = "C:\Users\asafarr1\Desktop\Testordner\" & FName
InitializeOutlook = True
Set Email = OutApp.CreateItem(0)
With Email
.GetInspector
strOldBody = .HTMLBody
.To = "vonmir@zudir.com"        'email Adresse eintragen
'.CC = ""                       'hier eventuelle Kopie Empfaenger
.Subject = FName
.Attachments.Add AWS
.HTMLBody = "Dein Text" & strOldBody    'hier deinen Text eingeben, das & strOldBody  _
ist dazu da um deine Signatur wieder einzufuegen
'.Send          'gleich senden
.Display        'erst anzeigen
End With
Set OutApp = Nothing
Set Email = Nothing
Application.DisplayAlerts = True
End Sub
Gruss Torsten
Anzeige
AW: Excel als PDF > XLSX > Email angang
21.06.2019 12:15:54
Torsten
sorry
bitte schmeiss diese Zeile raus. vergessen zu loeschen

Set xRg = Sheets("Sheet1").Range("A1:C" & a)

AW: Excel als PDF > XLSX > Email angang
21.06.2019 12:23:44
botfaehig
eh,....
einfach Bombe!Herzlichen DANK !
kann ich auch irgendwo Tabellenblätter bestimmen?
AW: Excel als PDF > XLSX > Email angang
21.06.2019 12:37:06
Torsten
Hallo,
Bitte.
Was meinst du mit Tabellenblaetter bestimmen?
Meinst du, welches Blatt als PDF gespeichert und versendet wird?
AW: Excel als PDF > XLSX > Email angang
21.06.2019 12:39:38
Torsten
Dann einfach "ActiveSheet" in der Zeile

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FName, Quality:=xlQualityStandard,  _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

ersetzen mit

ThisWorkbook.Sheets("Tabellenname")

Gruss
Anzeige
AW: Excel als PDF > XLSX > Email angang
24.06.2019 10:27:13
botfaehig
Hallo zusammen,
danke Torsten noch Mal für den schnellen Einsatz und die Rückmeldung am Freitag.
aktuell bekomme ich eine Fehlermeldung.
Userbild
erkennt jemand etwas?
Vielen Dank
AW: Excel als PDF > XLSX > Email angang
24.06.2019 10:42:07
botfaehig
hat sich erledigt!
diese Zeile sollte raus, hab vergessen die zu löschen.
aber etwas anderes jetzt.
hier wird mir Fehler angezeigt..
1. .Attachments.Add AWS
2. Bei der gespeicherte PDF Datei anstatt Test 20190624 schreibt er Te0t 20190624
AW: Excel als PDF > XLSX > Email angang
24.06.2019 11:04:44
botfaehig
Guten morgen,
kann mir einer helfen ich bekommen hier eine Fehlermeldung.
hier wird mir Fehler angezeigt..
1. .Attachments.Add AWS
2. Bei der gespeicherte PDF Datei anstatt Test 20190624 schreibt er Te0t 20190624
Vielen Dank
Anzeige
AW: Excel als PDF > XLSX > Email angang
24.06.2019 11:25:25
Torsten
Hallo botfaehig,
sorry, das hier kann auch nicht funktionieren:

FName = Range("F5").Value & Format(Date, "Test YYYYMMDD") & ".pdf"

Man kann den String "Test" nicht da rein packen. Der muss separat. Habe ich uebersehen:

FName = Range("F5").Value & "Test" & Format(Date, "YYYYMMDD") & ".pdf"

Und welchen Fehler bekommst du bei .Attachments.Add AWS?
AW: Excel als PDF > XLSX > Email angang
24.06.2019 11:39:55
botfaehig
Hi,
also mit Text klappt jetzt.
Email öffnet sich nicht.
Datei wird erzeugt.
Fehler kommt hier.
Userbild
Anzeige
AW: Excel als PDF > XLSX > Email angang
24.06.2019 11:40:53
botfaehig
Hi,
also mit Text klappt jetzt.
Email öffnet sich nicht.
Datei wird erzeugt.
Fehler kommt hier.
Userbild
AW: Excel als PDF > XLSX > Email angang
24.06.2019 11:44:19
Torsten
Hallo,
versteh ich nicht. Bei mir laeuft der Code sauber durch. Auch, wenn Outlook nicht geoeffnet ist, wird es gestartet und die Email erzeugt mit Anhang.
Kann nur noch sein, dass die Refernz zur Outlook Bibliothek fehlt.
Wo der Fehler kommt, war mir schon klar. Aber welchen Fehler zeigt es dir an?
AW: Excel als PDF > XLSX > Email angang
24.06.2019 11:47:33
botfaehig
also es kommt
Laufzeitfehler '-2147024773
Datei- oder Ordnername ist ungültig.
Anzeige
AW: Excel als PDF > XLSX > Email angang
24.06.2019 12:05:16
Torsten
Komisch. Bei mir laeuft es durch, wie gesagt.
Aber versuch es nochmal so:

Private Sub CommandButton1_Click()
Dim FName As String, FPath As String, strOldBody As String
Dim Email As Object, OutApp As Object
Dim InitializeOutlook
FPath = "C:\Users\asafarr1\Desktop\Testordner\"
FName = Range("F5").Value & "Test" & Format(Date, "YYYYMMDD") & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FPath & FName, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
'als Email versenden
Application.DisplayAlerts = False
Set OutApp = CreateObject("Outlook.Application")
InitializeOutlook = True
Set Email = OutApp.CreateItem(0)
With Email
.GetInspector
strOldBody = .HTMLBody
.To = "vonmir@zudir.com"        'email Adresse eintragen
'.CC = ""                       'hier eventuelle Kopie Empfaenger
.Subject = FName
.Attachments.Add FPath & FName
.HTMLBody = "Dein Text" & strOldBody    'hier deinen Text eingeben, das & strOldBody  _
ist dazu da um deine Signatur wieder einzufuegen
'.Send          'gleich senden
.Display        'erst anzeigen
End With
Set OutApp = Nothing
Set Email = Nothing
Application.DisplayAlerts = True
End Sub

Anzeige
AW: Excel als PDF > XLSX > Email angang
24.06.2019 13:16:31
botfaehig
:-/
jetzt so...
was mache ich falsch?
Fehlermeldung.
Das Dokument wurde nicht gespeichert.
Userbild
AW: Excel als PDF > XLSX > Email angang
24.06.2019 13:18:14
botfaehig
:-/
jetzt so...
was mache ich falsch?
Fehlermeldung.
Das Dokument wurde nicht gespeichert.
Userbild
AW: Excel als PDF > XLSX > Email angang
24.06.2019 13:57:38
Torsten
Sorry,
aber irgendwas laeuft da bei dir krumm. Bei mir laeft der Code sauber durch.
Kannst du deine Datei mal hochladen?
AW: Excel als PDF > XLSX > Email angang
24.06.2019 14:15:52
botfaehig
ja hier,
schau mal bitte.
PS: gestern wo ich noch sp frälich zurückgeschrieben habe ging es.
hat 1x ausprobiert..
heute nicht mehr...
https://www.herber.de/bbs/user/130562.xlsm
Anzeige
AW: Excel als PDF > XLSX > Email angang
24.06.2019 15:42:35
Torsten
Hallo,
das geht so nicht. Der Pfad wird ja im Code schon angegeben. Du hast den Pfad nochmal als Wert in die Zelle F5 geschrieben. Somit bekommt der Dateiname den Pfad 2 mal. Das kann nicht funktionieren. In F5 musst du nur den 1. Teil des Dateinamens eingeben. Du willst ja praktisch die Datei speichern mit dem Namen aus F5+"Test"+Datum.
Wenn du den Wert aus F5 nicht in dem Namen willst dann mach die Zeile so:

FName = "Test" & Format(Date, "YYYYMMDD") & ".pdf"

Wenn du den Pfad in F5 angeben moechtest, dann so:

FPath = Range("F5").Value & "\"
FName = "Test" & Format(Date, "YYYYMMDD") & ".pdf"
Gruss Torsten
Anzeige
AW: Excel als PDF > XLSX > Email angang
25.06.2019 10:18:01
botfaehig
Moin Torsten,
also irgendwie habe ich es hinbekommen. Musste neuen Ordner erstellen, Pfad neu angegeben, nun geht es. Vielen Dank.
Fragen.
in der Exceldatei habe ich mehrere Tabellen-Blätter.
Wo kann ich im Code bestimmen das es beim Ausführen;
Tabellenblatt xxx in .xlsx (Also Excel) speichert
und einen anderen Tabellenblatt als PDF. (unterschiedliche Speicherorte)
Aber als Emailanhang sollten beide angehängt werden.
Dateibenennung bleibt wie gehabt
hoffe es ist verständlich.
Danke Dir.
AW: Excel als PDF > XLSX > Email angang
25.06.2019 13:51:52
Torsten
Hallo,
da du deinen jetzt funktionierenden Code nicht mitgeschickt hast, musst du sicher einiges wieder anpassen.
Hier nun speichern als PDF und als Excel Datei. Dann beides als Email versenden:

Private Sub CommandButton1_Click()
Dim FNamePDF As String, FPathPDF As String, FNameXL As String, FPathXL As String, strOldBody As  _
String
Dim Email As Object, OutApp As Object
Dim InitializeOutlook
Dim NewWB As Workbook
''Tabellenblatt als PDF speichern
FPathPDF = "C:\Users\asafarr1\Desktop\Testordner\"
FNamePDF = Range("F5").Value & "Test" & Format(Date, "YYYYMMDD") & ".pdf"
'Tabellennamen anpassen
Sheets("Tabelle1").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FPathPDF & FNamePDF, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
''Tabellenblatt als neue Excel Datei speichern
'Pfad anpassen, wenn anders
FPathXL = "C:\Users\asafarr1\Desktop\Testordner\"
FNameXL = Range("F5").Value & "Test" & Format(Date, "YYYYMMDD") & ".xlsm"
'Tabellennamen anpassen
Set NewWB = Workbooks.Add
ThisWorkbook.Sheets("Tabelle1").Copy Before:=NewWB.Sheets(1)
NewWB.SaveAs Filename:=FPathXL & FNameXL, FileFormat:=xlOpenXMLWorkbookMacroEnabled
''als Email versenden
Application.DisplayAlerts = False
Set OutApp = CreateObject("Outlook.Application")
InitializeOutlook = True
Set Email = OutApp.CreateItem(0)
With Email
.GetInspector
strOldBody = .HTMLBody
.To = "vonmir@zudir.com"        'email Adresse eintragen
'.CC = ""                       'hier eventuelle Kopie Empfaenger
.Subject = FName
.Attachments.Add FPathPDF & FNamePDF
.Attachments.Add FPathXL & FNameXL
.HTMLBody = "Dein Text" & strOldBody    'hier deinen Text eingeben, das & strOldBody _
ist dazu da um deine Signatur wieder einzufuegen
'.Send          'gleich senden
.Display        'erst anzeigen
End With
Set OutApp = Nothing
Set Email = Nothing
Set NewWB = Nothing
Application.DisplayAlerts = True
End Sub

Gruss und viel Spass
Anzeige
AW: Excel als PDF > XLSX > Email angang
26.06.2019 10:47:03
botfaehig
Moin Torsten,
Tolle Arbeit ! Wirklich. Vielen Dank!
weitere Fragen, (Kleinigkeiten..)
- Nach Auslösen öffnet sich die Excel tabelle, das braucht nicht, kann das abgestellt werden?
- Betreff fehlt, soll so heissen die eine der beide Dateien
- wie mach ich einen Absatz im Text, der schreibt setzt alles in einer Reihe,
Private Sub CommandButton1_Click()
Dim FNamePDF As String, FPathPDF As String, FNameXL As String, FPathXL As String, strOldBody As  _
_
String
Dim Email As Object, OutApp As Object
Dim InitializeOutlook
Dim NewWB As Workbook
''Tabellenblatt als PDF speichern
FPathPDF = "C:\Users\asafarr1\Desktop\Testordner1\"
FNamePDF = Range("F5").Value & "Test" & Format(Date, "DD.MM.YYYY") & ".pdf"
'Tabellennamen anpassen
Sheets("Ausdruck").ExportAsFixedFormat Type:=xlTypePDF, Filename:=FPathPDF & FNamePDF, Quality:= _
_
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
''Tabellenblatt als neue Excel Datei speichern
'Pfad anpassen, wenn anders
FPathXL = "C:\Users\asafarr1\Desktop\Testordner2\"
FNameXL = Range("F5").Value & "Test" & Format(Date, "DD.MM.YYYY") & ".xlsm"
'Tabellennamen anpassen
Set NewWB = Workbooks.Add
ThisWorkbook.Sheets("Tabelle1").Copy Before:=NewWB.Sheets(1)
NewWB.SaveAs Filename:=FPathXL & FNameXL, FileFormat:=xlOpenXMLWorkbookMacroEnabled
''als Email versenden
Application.DisplayAlerts = False
Set OutApp = CreateObject("Outlook.Application")
InitializeOutlook = True
Set Email = OutApp.CreateItem(0)
With Email
.GetInspector
strOldBody = .HTMLBody
.To = "vonmir@zudir.com"        'email Adresse eintragen
'.CC = ""                       'hier eventuelle Kopie Empfaenger
.Subject = FName
.Attachments.Add FPathPDF & FNamePDF
.Attachments.Add FPathXL & FNameXL
.HTMLBody = "Dein Text" & strOldBody    'hier deinen Text eingeben, das & strOldBody _
ist dazu da um deine Signatur wieder einzufuegen
'.Send          'gleich senden
.Display        'erst anzeigen
End With
Set OutApp = Nothing
Set Email = Nothing
Set NewWB = Nothing
Application.DisplayAlerts = True
End Sub

AW: Excel als PDF > XLSX > Email angang
26.06.2019 13:51:17
Torsten
Hallo,
1. Da hier eine neue Datei erzeugt wird, kann man das Oeffnen nicht verhindern. Habe aber eingebaut, dass es sofort geschlossen wird.
2. Beim Betreff hatte ich vergessen, den Variablennamen anzupassen. Erledigt.
3. Zeilenumbrueche hab ich dir mal als Beispiel eingefuegt. Solltest du nach deinen Bedingungen anpassen koennen. Musste dir aber den Code in eine kleine Datei packen, da der Code fuer die Zeilenumbrueche hier in HTML nicht angezeigt, sondern die Zeilenumbrueche erzeugt werden.
Gruss Torsten
https://www.herber.de/bbs/user/130597.xlsm
AW: Excel als PDF > XLSX > Email angang
26.06.2019 14:54:16
botfaehig
Suppper Danke Dir,
bin am perfektionieren noch...
wenn ich noch einen Weitere Datei angehängt haben möchte, wie lautet das Code dafür ?
also; also als Anhang noch datei aus (hier pfad...)
Vielen Dank
AW: Excel als PDF > XLSX > Email angang
26.06.2019 15:45:49
Torsten
Hallo,
mit diesem Befehl haengst du die Dateien an:

.Attachments.Add FPathPDF & FNamePDF
.Attachments.Add FPathXL & FNameXL

Du kannst entweder Varaiblen verwenden und diesen den String mit Pfad und Dateinamen uebergeben, so wie ich. Oder du kannst auch Pfad und Dateinamen direkt hier vergeben, wenn er immer gleich ist. So als Beispiel:

.Attachments.Add "C:\Users\asafarr1\Desktop\Testordner2\testdatei.xlsx"
Gruss
AW: Excel als PDF > XLSX > Email angang
27.06.2019 10:32:46
botfaehig
Prima,
kannst Du bitte sagen mit welchen Befehl kann ich sagen das es den Pfand von der Datei die zusätzlich angehängt werden soll sich in z. B. F5 befindet ?
das es dort rausgelesen wird.
Vielen Dank

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige