Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Macro Tabelle über Button als pdf sichern und

VBA Macro Tabelle über Button als pdf sichern und
18.03.2017 23:56:15
Andre
Hallo.
ich kenne mich noch sehr wenig mit der VBA Sprache aus und deshalb benötige ich ein wenig Hilfe.
Ich möchte in einer Excel Arbeitsmappe die Tabelle ZEF_Jan und die Tabelle SPE_Jan als PDF an einem bestimmten Ort sichern, beide Tabellen hintereinander in einer PDF Datei, diese gesicherte PDF Datei soll mir dann für die Kontrolle geöffnet werden und als E-Mail Anhang versendet werden.
Dafür möchte ich einen Button erstellen und diesem das Macro zuweisen.
Wie erstelle ich nun diesen Button und wie sollte so ein Marco aussehen.
Vielen Dank
Mfg Andre

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Macro Tabelle über Button als pdf sichern und
19.03.2017 09:55:01
fcs
Hallo Andre,
Wie erstelle ich nun diesen Button und wie sollte so ein Marco aussehen.

Fall noch nicht geschehen, dann musst du via Menü
Datei --&gt Optionen --&gt Menüband anpassen
die Hauptregisterkarte "Entwicklertools" einblenden.
In diesem Register kannst du unter "Einfügen" aus den Formularsteuerelementen die Schaltfläche wählen und dann auf dem Tabellenblatt plazieren.
Ein entsprechendes Makro kann dann wie folgt aussehen.
Die im Makro vorgegebenen Werte musst du an deine Anforderungen anpassen.
Der E-Mail-Versand erfolgt hier via MS Outlook.
Falls du ein anderes E-Mail-Programm verwendest, dann kann man evtl. das Makro anpassen.
Du kannst aber auch zum Beispiel vom AcrobatReader aus den Versand der Datei starten.
LG
Franz
'Erstellt unter Windows Vista / Microsoft Office 2010 professional / Excel 2010
Option Explicit
Sub Speichen_PDF_Jan()
' Speichen_PDF Makro und Versand als E-Mail-Anhang
Dim sPfad As String, sDatei As String
Dim sPDF_Datei As String
Dim objSheet As Object
Dim strBody As String
sPfad = "C:\Users\Public\Test\Data\"
sDatei = "ZEF_Jan_SPE_Jan_" & Format(Date, "YYYY-MM-DD") & ".pdf"
sPDF_Datei = sPfad & sDatei
Set objSheet = ActiveSheet
Sheets(Array("ZEF_Jan", "SPE_Jan")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=sPDF_Datei, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, _
IgnorePrintAreas:=False, OpenAfterPublish:=True
objSheet.Select
If MsgBox("PDF jetzt als E-Mail-Anhang versenden?", vbQuestion + vbYesNo, _
"E-Mail-Versand") = vbYes Then
strBody = "Hallo xyZ," & Chr(10) & Chr(10) _
& "hier der aktuelle Stand der Dateien" & Chr(10) & Chr(10) _
& "mfg Andre"
Call E_Mail_Versand(varTo:="test@gmail.com", _
strSubject:="ZEF_Jan und SPE_Jan - Stand " & Format(Date, "YYYY-MM-DD"), _
varBody:=strBody, _
varAttachments:=sPDF_Datei, _
bolSend:=False)
End If
End Sub
Sub E_Mail_Versand(varTo, strSubject, _
Optional varBody, _
Optional varCC, Optional varBCC, _
Optional varAttachments, _
Optional bolSend As Boolean = False)
' ####          E-Mail-Versand via Microsoft Outlook      ####
'varTo      E-Mail-Adresse(n) der E-Mai-Empfäner
'varCC      E-Mail-Adresse(n) der Kopie-Empfäner
'varBCC     E-Mail-Adresse(n) der Blind-Kopie-Empfäner
'strSubject Betreff/Subject der E-Mail
'varBody    Text der E-Mail
'varAttachments Anhänge zur E-Mail - einzelner Dateiname (mit Pfad!) oder ein Array mit  _
mehreren Dateinamen
'bolSend    Wenn True wird die E-Mail espeichert und direkt gesendet _
Wenn False wird der Entwurf der E-Mail erstellt und in Outlook angezeigt
Dim objApp As Object 'Outlook.Application
Dim objMail As Object 'Outlook.MailItem
Dim varItem
Set objApp = VBA.CreateObject("Outlook.Application")
Set objMail = objApp.CreateItem(0) '0=olMailItem
With objMail
.To = varTo
If Not IsMissing(varCC) Then .CC = varCC
If Not IsMissing(varBCC) Then .BCC = varBCC
.Subject = strSubject
If Not IsMissing(varBody) Then .Body = varBody
If Not IsMissing(varAttachments) Then
If IsArray(varAttachments) Then
For Each varItem In varAttachments
.Attachments.Add varItem
Next
Else
.Attachments.Add varAttachments
End If
End If
If bolSend = True Then
.Save
.Send
Else
.Display
End If
End With
Set objApp = Nothing
Set objMail = Nothing
End Sub

Anzeige

124 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige