Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1320to1324
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 PDf versenden

Tabellenblatt als PDf versenden
02.07.2013 13:08:40
Beat
Hallo zusammen,
Ich habe bereit folgendes Problem geschildert.
Ich möchte aus einem Tabellenblatt die E-Mailadresse auslesen(F14),
Disselbe Tabellenblatt als PDF an diese E-Mailadresse versenden.
ich habe von Klaus sehr gute Infos bekommen, komme aber doch nicht weiter.
Vielleicht kannst du Klaus mir nochmals helfen.
Vielen Dank.
Beat
https://www.herber.de/forum/archiv/1316to1320/t1319477.htm#1320601
Userbild
Option Explicit
Const MyPath As String = "C:\TestTmp\" 'Hier den Pfad anpassen, unter dem du die PDFs _
speichern willst!
Sub SendSheetAsPDF()
Dim MailTo As String
Dim MailCC As String
Dim MailSubject As String
Dim MailText As String
'Email Adresse aus f14 auslesen
MailTo = ActiveSheet.Range("F14").Value
'CC-Adressen: keine. Hier kannst du weitere eintragen, direkt oder als Zellreferenz
MailCC = ""
'Betreff: Workbook-Name und Datum
MailSubject = ActiveWorkbook.Name & " " & Format(Date, "DD.MMM.YYYY")
'Standardtext, im Maildisplay noch änderbar
MailText = "Hallo Welt, (br) hier ist eine Datei!" 'HTML! die (br) gegen HTML-Zeilenumbruch _
tauschen
Call SendSheetOutlook(MailSubject, MailTo, MailCC, MailText)
End Sub
'***************************************************************************
'Makro to send Excel-Sheet directly with outlook
'April 2013 by Klaus M.vdT.
'MODIFIED June 2013: Send pdf, not xlsx!
'original Code by mumpel / www.herber.de / 11.04.2013 11:23:25
'https://www.herber.de/forum/messages/1308295.html
'***************************************************************************
Private Sub SendSheetOutlook(sSubject As String, sTo As String, sCC As String, sText As String)
Dim olApp         As Object
Dim AWS           As String
Dim olOldBody     As String
'define temporary Path and Filename
AWS = MyPath & "\" & Format(Date, "YYYYMMDD") & "_" & Format(Time, "hhmmss") & "_" & _
WorksheetFunction.Substitute(ActiveWorkbook.Name, ".xlsm", "")
'export File as PDF
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=AWS, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
AWS = AWS & ".pdf"
'Make Email
Set olApp = CreateObject("Outlook.Application")
With olApp.CreateItem(0)
.GetInspector.Display
olOldBody = .htmlBody
.To = sTo
.cc = sCC
.Subject = sSubject
.htmlBody = sText & olOldBody
.Attachments.Add AWS
End With
'remove TEMP file
'wenn du das PDF behalten möchtest, diese Zeile auskommentieren!
'sonst wird das temporäre PDF wieder gelöscht
'Kill AWS
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
xl2007 oder 2010?
02.07.2013 13:23:47
Klaus
Hallo Beat,
wie gesagt, bei mir ging der Code. Lad bitte mal die Datei selbst hoch!
Hast du jetzt xl2007 oder xl2010?
Grüße,
Klaus M.vdT.

läuft einwandfrei
02.07.2013 14:35:26
Klaus
Hallo Beat,
das Makro läuft bei mir einwandfrei durch. Wenn du möchtest und die Mail-Adresse stimmt, kann ich ja mal auf "senden" clicken ...
Sorry, Fehler nicht reproduzierbar und damit kann ich dir dann auch nicht helfen!
Offtopic: solche Rekordercodes
Sub Ausblenden_ab21()
' Ausblenden_ab21 Makro
Rows("36:45").Select
Selection.EntireRow.Hidden = True
End Sub

lassen sich ganz wunderbar verkürzen, und es ist auch nicht nötig dass Excel die Zeilen dafür anfasst:
Sub Ausblenden_ab21()
' Ausblenden_ab21 Makro
Rows("36:45").Hidden = True
End Sub

Dazu empfehle ich folgenden Link:
http://www.online-excel.de/excel/singsel_vba.php?f=78
Grüße,
Klaus M.vdT.
Anzeige

118 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige