Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Speichermakro in PDF
#1
Hallo :)

Ich habe eine Excel mit 2 Seiten, möchte aber das die zweite Seite nur gespeichert wird sollte in Feld H83 eine Zahl grösser als 0 stehen und am liebsten als PDF auf einem Netzwerkpfad. Ich habe keine Ahnung ob dies überhaupt machbar ist. Huh
Die Steigerung, sollte das möglich sein, wäre dann das dass PDF direkt in einem Mail geöffnet wird.

Vielen Dank bereits im voraus.
Gruss
Antworten Top
#2
Hi,
schon mal die Suchenfunktion des Forums genutzt?
Speichern als PDF kommt ja häufig und die Bedingungen dort einzubauen, sollte kein Problem darstellen.
Mit freundlichen Grüßen  :)
Michael
Antworten Top
#3
Ja, ist machbar

wir bräuchten nur mehr Infos z.B. eine Beispieldatei und den Bereich der als PDF gespeichert werden soll. Außerdem kann die PDF im Netzwerkordner automatisch einen Namen bekommen.

vllt kriegst du das aber auch mithilfe von GIDF hin (Google ist dein Freund)
Antworten Top
#4
Hallo :)

Ich habe nun Google und Forum intensiv durchforstet und konnte mir einen Code zusammenbasteln. Allerdings komme ich nun wirklich nicht drauf wie ich dem Code sagen kann das er mir die zweite Seite nur als pdf generieren soll wenn in Zelle H83 eine Zahl >0 steht. Ich hoffe hierbei darf ich auf euer Fachwissen zählen:


Code:
Sub PDF_per_EMail()

'** Dimensionierung der Variablen
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object

'** Vorgaben definieren
Set OutlookApp = CreateObject("Outlook.Application")
Set strEmail = OutlookApp.CreateItem(0)

'** Zeilenhöhe automatisch anpassen
ActiveSheet.Range("c25:c99").Rows.EntireRow.AutoFit

'** PDF erzeugen
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:="\\Netzwerkpfad\" & "Offerte" & "_" & Range("C18") & ".pdf", _
 Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, from:=1, To:=2, OpenAfterPublish:=True _

'** E-Mail versenden
strPDF = "\\Netzwerkpfad\" & "Offerte" & "_" & Range("C18") & ".pdf"
With strEmail
 .To = "info@mail.ch"
 .Subject = "PDF als Anlage" 'Betreffzeile
 .body = "Als Anlage die PDF-Datei"
 .Attachments.Add strPDF
 .Display
 '.Send 'Damit wir die E-Mail sofort versendet
 Kill strPDF
End With
 
'** Objektvariablen wieder löschen
Set OutlookApp = Nothing
Set strEmail = Nothing
End Sub



Irgendwie müsste bei "... from:=1, To:=2..." etwas wie "if H83>0" hin aber da komme ich nun auch mit meinen Recherchen nicht weiter. Confused
Antworten Top
#5
Hallo, :19:

du hast also 2 Tabellenblätter und möchtest das zweite Blatt als PDF speichern und versenden: :21:

Code:
Option Explicit
Sub PDF_per_EMail()
Dim strPDF As String
Dim OutlookApp As Object, strEmail As Object
' Hier den Pfad anpassen!!!!!!!
Const strPath As String = "C:\Temp\Offerte_"
With ThisWorkbook.Worksheets(2)
    If IsNumeric(.Range("H83").Value) And .Range("H83").Value > 0 Then
        .Range("c25:c99").Rows.EntireRow.AutoFit
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPath & .Range("C18") & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
        Set OutlookApp = CreateObject("Outlook.Application")
        Set strEmail = OutlookApp.CreateItem(0)
        strPDF = strPath & .Range("C18") & ".pdf"
        With strEmail
            .To = "info@mail.ch"
            .Subject = "PDF als Anlage" 'Betreffzeile
            .Body = "Als Anlage die PDF-Datei"
            .Attachments.Add strPDF
            .Display
            '.Send 'Damit wir die E-Mail sofort versendet
            Kill strPDF
        End With
    End If
End With
Set OutlookApp = Nothing
Set strEmail = Nothing
End Sub

Wenn es ein anderes Tabellenblatt ist kannst du z. B. auch so schreiben: :21:

Code:
With ThisWorkbook.Worksheets("Tabelle2")

Den Namen gegebenenfalls anpassen.
Wenn du mit "Kill" arbeiten möchtest, dann aber nicht mit "OpenAfterPublish:=True" - das knallt, wenn du eine Datei löschen möchtest, die noch im PDF-Reader offen ist.

Infos auch hier: :21:

Workbook.ExportAsFixedFormat...

Worksheet.ExportAsFixedFormat...
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • sawosch
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste