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

Tabelle als PDF speichern und als Mail verschicken

Tabelle als PDF speichern und als Mail verschicken
15.03.2013 13:10:36
OJOJ
Hallo Zusammen,
ich kenne mich mit Excel eigentlich recht gut aus aber mit dem Schreiben eines Makros stoße ich an meine Grenzen. Ich bin mir sicher, dass Ihr mir helfen könnt.
Ich arbeite mit einem Mac und nutze Excel 2011 (Version 14.3.2).
Ich wollte für die Arbeit zwei Makros schreiben, sie sollten folgendes können:
1. das aktive Tabellenblatt als PDF unter einem Pfad (/Users/All/Documents/1 Versicherung/1 Schreiben/2 Posteingang) mit einem bestimmten Namen (Name steht unter A2 in der Tabelle) speichern
2. das aktive Tabellenblatt als PDF unter einem Pfad (/Users/All/Documents/1 Versicherung/1 Schreiben/2 Posteingang) mit einem bestimmten Namen (Name steht unter A2 in der Tabelle) speichern und anschließend das PDF als Anhang einer Mail verschicken mit dem Dateinamen (Name steht unter A2 in der Tabelle) im Betreff sowie einer bestimmten Mail- Adresse für den Empfänger (Adresse steht unter AK2 in der Tabelle)
Die Datei hat mehrere Tabellenblätter. Alle sind unterschiedlich bezeichnet. Das Makro sollt aber für alle Tabellenblätter gleich gelten.
In jedem Tabellenblatt ist die Tabelle über den Druckbereich gekennzeichnet.
Ich suche schon seit einigen Tagen in verschiedenen Foren aber leider ohne Erfolg.
Dank Euch!!

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle als PDF speichern und als Mail verschicken
16.03.2013 06:24:59
schauan
Hallo,
mal noch was zur Erläuterung:
strTMP = ThisWorkbook.Worksheets("Hilfstabelle").Range("B9").Text
'Zelle B9 enthält den Ordnerpfad D:\Firma\Rechnungen\2013\
In dieser Zeile wird der Ausgabepfad für die pdf definiert. Der steht hier auf dem Blatt "Hilfstabelle" in Zelle (bzw. im Range = Bereich) "B9"
Bei Dir könnte die Zeile so aussehen:
strTMP = "/Users/All/Documents/1 Versicherung/1 Schreiben/2 Posteingang/"
oder Du schreibst es nach B9 ;-)
With ThisWorkbook.Worksheets("RechnungMail")
strTMP = strTMP & .Range("C12").Value & "." & .Range("F12").Value & "." & .Range("F11").Value
In diesen Zeilen wird der Dateiname aus Daten vom Blatt "Rechnungsmail" hinzugefügt - den Blattnamen musst Du ggf. ändern.
Das wäre bei Dir kürzer:
strTMP = strTMP & .Range("A2").Value
.To = Range("C12").Value
Hier steht der Adressat. Bei Dir wäre es nicht C12, sondern AK2. Eventuell muss noch der Blattname davor, falls das Blatt mit dem Adressaten nicht aktiv ist.
 Hoffe, geholfen zu haben. Grüße, André aus G in T  (xls 97-2013)

Anzeige
AW: Tabelle als PDF speichern und als Mail verschicken
17.03.2013 12:11:09
OJOJ
Hallo Andre,
ich hab den Code jetzt wie folgt umgeschrieben:
Dim olApp As Object
Dim strTMP As String
Dim xlFileName As String
strTMP = ThisWorkbook.Worksheets("Uebertrag").Range("A29").Text 'Zelle A29 enthält den Ordnerpfad Macintosh HD:Users:All:Documents:1 Versicherung:1 Schreiben:2 Posteingang:
With ThisWorkbook.Worksheets("Termin")
strTMP = strTMP & .Range("A2").Value
'Tatsächlicher Inhalt der Zellen A2=offen
.ExportAsFixedFormat 0, strTMP ', OpenAfterPublish:=True
'Original Dateipfad und -name=offen
End With
Set olApp = CreateObject("Mail.Application")
With olApp.CreateItem(0)
.To = Range("AK2").Value
.Subject = Range("A2").Value ' Betreff
'MsgBox strTMP & ".pdf"
.Attachments.Add strTMP & ".pdf" 'Datei anhängen
'das war das Problem: & ".pdf"
.Send ' Email senden
End With
End Sub
Er bleibt bei - Set olApp = CreateObject("Mail.Application") stecken. Ich hab zwar Outlook arbeite aber schon immer mit Mail und dem Adressbuch von Apple. Wie kann ich das umschreiben? Ich hab schon ein paar Varianten versucht aber ohne Erfolg.
Gruss Jesko

Anzeige
AW: Tabelle als PDF speichern und als Mail verschicken
17.03.2013 16:29:58
KlausF
Hallo Jesko,
CreateObjekt funktioniert nicht unter dem Mac.
Das Standardmailprogramm rufst du so auf:
Sub AufrufStandardMail()
Dim Betreff
Dim DenText
Dim Adresse
Adresse = Range("A1").Text
Betreff = Range("A2").Text
DenText = Range("A3").Text
ActiveWorkbook.FollowHyperlink "mailto:" & Adresse & "?subject=" & Betreff & "&Body=" &  _
DenText
End Sub
Und Attachments.Add funktioniert glaube ich auch nicht unter dem Mac.
Nachfolgend jeweils ein Code, der das Workbook oder ein SingleSheet in den Anhang bringt:
Sub MailWorkbook()
With Application.CommandBars.Add
.Visible = False
.Controls.Add(Type:=msoControlButton, Id:=2188).Execute
.Delete
End With
End Sub

Sub MailSingleSheet()
With Application
.ScreenUpdating = False
ActiveSheet.Copy
With .CommandBars.Add
.Visible = False
.Controls.Add(Type:=msoControlButton, Id:=2188).Execute
.Delete
End With
ActiveWorkbook.Close SaveChanges:=False
.ScreenUpdating = True
End With
End Sub
Getestet unter Excel 2011 / Mac
Gruß
Klaus

Anzeige
AW: Tabelle als PDF speichern und als Mail verschicken
17.03.2013 17:39:20
OJOJ
Hallo Klaus,
auf dieser Seite reden sie von Workbook, Worksheet. Ich muss aber ein PDF verschicken.
Mit
Sub AufrufStandardMail()
Dim Betreff
Dim DenText
Dim Adresse
Adresse = Range("A2").Text
Betreff = Range("A4").Text
DenText = Range("A5").Text
ActiveWorkbook.FollowHyperlink "mailto:" & Adresse & "?subject=" & Betreff & "&Body=" & _
DenText
End Sub
geht Mail auf, jetzt muss ich nur noch eine PDF erstellen und in die Mail bekommen.
Hast Du dazu noch eine Idee?
Gruss Jesko

Anzeige
AW: Tabelle als PDF speichern und als Mail verschicken
17.03.2013 18:06:46
KlausF
Hallo Jesko,
war der falsche Link:
http://www.rondebruin.nl/mac.htm#PDF
Ziemlich weit oben unter Make and Mail PDF files with VBA code
Da gibt es auch ein Beispiel-File zum downloaden ...
Gruß
Klaus

AW: Tabelle als PDF speichern und als Mail verschicken
18.03.2013 11:27:38
OJOJ
Hallo Klaus,
danke für die Tipp!!!
Mit:
Sub CreateMailPDFNameTabellenblattMacMail()
Dim TempPDFFolder As String
Dim PDFfolder As String
Dim PDFfileName As String
TempPDFFolder = MacScript("return (path to documents folder) as string") & "PDFTempFolder:"
PDFfolder = MacScript("return (path to documents folder) as string")
PDFfileName = Range("AN7").Text & " " & Range("AN8").Text & " " & Format(Now, "yy-mm-dd h- _
mm") & " " & Range("AN4").Text
Application.ScreenUpdating = False
Worksheets("NameTabellenblatt").Copy
Call MakePDF(TempPDFFolder, PDFfolder, PDFfileName, True)
ActiveWorkbook.Close SaveChanges:=False
If FileExistsOnMac(PDFfolder & PDFfileName & ".pdf") = True Then
MailFromMacWithMail bodycontent:="Sehr geehrte Damen und Herren" & vbNewLine &  _
vbNewLine & Range("an5").Text & vbNewLine & vbNewLine & "Mit freundlichen Grueßen" & vbNewLine & vbNewLine & Range("an6"), _
mailsubject:=Range("AN7").Text & " " & Range("AN8").Text & " " &  _
Format(Now, "yy-mm-dd h-mm") & " " & Range("an4").Text, _
toaddress:=Range("AN2").Text, _
ccaddress:="", _
bccaddress:="", _
attachment:=PDFfolder & PDFfileName & ".pdf", _
displaymail:=False
KillFileOnMac PDFfolder & PDFfileName & ".pdf"
End If
Application.ScreenUpdating = True
End Sub
kann ich die Tabelle im ausgewählten Druckbereich aus einem Tabellenblatt per Mail versenden. Das funktioniert aber nur in der Datei die ich unter Deinem Link heruntergeladen habe. Wenn ich das Makro in eine andere Datei übertragen habe, habe ich einen Fehler bei - Call MakePDF(TempPDFFolder, PDFfolder, PDFfileName, True) ?
In diesem Code wird doch eine Temporäre Datei erstellt. Kannst Du mir erklären wie ich die Datei untere einem bestimmten Pfad speichern kann?
Gruss Jesko

Anzeige
AW: Tabelle als PDF speichern und als Mail verschicken
18.03.2013 17:25:12
KlausF
Hallo Jesko,
du mußt auch die Funktion MakePDF in die neue Datei kopieren.
Zu finden im VBA-Projekt unter Module im Untermodul FunctionModule.
Ich würde an deiner Stelle alles aus diesem Modul kopieren ...
Bestimmte Pfade erreichst du mit:
MacScript ("return (path to desktop folder) as string")
MacScript ("return (path to music folder) as string")
MacScript ("return (path to pictures folder) as string")
MacScript ("return (path to movies folder) as string")
MacScript ("return (path to applications folder) as string")
also z.B.
TempPDFFolder = MacScript("return (path to desktop folder) as string") & "PDFTempFolder:"
legt den temporären Folder auf dem Desktop an.
Du kannst den Pfad aber auch direkt eingeben:
TempPDFFolder = "Macintosh HD:Users:DeinUserName:Desktop:PDFTempFolder:"
Der PDFTempFolder muss natürlich existieren bzw. durch den Code angelegt werden.
Gruß
Klaus

Anzeige
AW: Tabelle als PDF speichern und als Mail verschicken
19.03.2013 11:05:32
OJOJ
Hallo Klaus,
ich hab verschieden Varianten ausprobiert. Ich versteh das alles nicht. Mein Englisch ist grottenschlecht! Für mich ist das extrem anstrengend.
Kann man das nicht über Apfel P - als PDF speichern - Pfad als Makro abarbeiten?
Gruß Jesko

AW: Tabelle als PDF speichern und als Mail verschicken
19.03.2013 17:19:12
OJOJ
Hallo Klaus,
vielen Dank für Deine Mühe!! Die Code funktioniert einwandfrei. Ich hab mich in meine Antwort falsch ausgerückt. Entschuldige bitte! Das versenden der Mail habe ich schon hinbekommen.
Was nicht funktioniert ist den Druckbereich einer Tabelle als PDF zu speichern, unter einem Pfad der in AN8 stehen soll. Ich dachte, man könnte das mit der Druckfunktion (Sichern als PDF) hinbekommen. Aufnehmen kann man das, dass funktioniert aber nicht richtig.
Gruss Jesko
Anzeige

417 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige