PDA

Vollständige Version anzeigen : Excel -> PDF mit variablem Speicherort


cuthbert
21.09.2011, 11:04
Hallo Leute ich stehe vor folgendem Problem:

Über eine Toolbox sollen mitarbeiter ein Excel Sheet als PDF exportieren können und an den ursprünglichen Speicherort des Sheetes ablegen.

Soweit so gut, über den Makro Rekorder erziele ich folgendes Ergebniss:

Sub PDF()
Sheets(Array("Titel", "Angebot")).Select
Sheets("Angebot").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\mueller\PDF.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Sheets("Angebot").Select
End Sub

Ich möchte allerdings wie gesagt nicht in C:.... speichern sondern immer automatisch dort wo auch die entsprechende Excel Datei gerade liegt.

Ist das irgendwie möglich?

mumpel
21.09.2011, 11:44
Hallo!

<blockquote><pre style='border:thin solid #FF8000; padding:12px 24px; margin-left:12px; color:#000000; overflow:auto; '><span style='color:#0000EE'>Sub</span> PDF() <span style='color:#0000EE'>Dim</span> pdfName <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>String</span> pdfName = ActiveWorkbook.Path & <span style='color:#FF0000'>"\"</span> & Left(ActiveWorkbook.Name, InStr(<span style='color:#DDAA00'>1</span>, ActiveWorkbook.Name, <span style='color:#FF0000'>"."</span>) - <span style='color:#DDAA00'>1</span>) & <span style='color:#FF0000'>".pdf"</span> Sheets(<span style='color:#FF0000'>"Angebot"</span>).ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False <span style='color:#0000EE'>End</span> <span style='color:#0000EE'>Sub</span></pre></blockquote>Code eingefügt mit VBA in HTML 2.0 (http://vbahtml.origo.ethz.ch). Erstellt und getestet in Excel 2010. Zur korrekten Darstellung des Codebeispiels wird der Internetexplorer empfohlen.

Gruß, René

cuthbert
21.09.2011, 12:15
das klappt gut, ich muss allerding zwei registerkarten in die pdf umwandeln, was ich dann auch so eingebaut habe:

Private Sub PDFausleiten_Click()

Dim pdfName As String

pdfName = ActiveWorkbook.Path & "\" & Left(ActiveWorkbook.Name, InStr(1, ActiveWorkbook.Name, ".") - 1) & ".pdf"

Sheets("Titel", "Angebot").ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

Sheets("Angebot").Select


End Sub


Was aber leider nicht funzt, das Sheets will er nicht zulassen, Falsche anzahl an Argumenten oder ungültige Zuweisung zur Eigenschaften.

mumpel
21.09.2011, 12:41
<blockquote>
<pre style='border:thin solid #FF8000; padding:12px 24px; margin-left:12px; color:#000000; overflow:auto; '><span style='color:#0000EE'>Sub</span> PDF() <span style='color:#0000EE'>Dim</span> pdfName <span style='color:#0000EE'>As</span> <span style='color:#0000EE'>String</span> pdfName = ActiveWorkbook.Path & <span style='color:#FF0000'>"\"</span> & Left(ActiveWorkbook.Name, InStr(<span style='color:#DDAA00'>1</span>, ActiveWorkbook.Name, <span style='color:#FF0000'>"."</span>) - <span style='color:#DDAA00'>1</span>) & <span style='color:#FF0000'>".pdf"</span> Sheets(Array(<span style='color:#FF0000'>"Titel"</span>, <span style='color:#FF0000'>"Angebot"</span>)).Copy <span style='color:#0000EE'>With</span> ActiveWorkbook .ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfName, Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True .Close savechanges:=False <span style='color:#0000EE'>End</span> <span style='color:#0000EE'>With</span> <span style='color:#0000EE'>End</span> <span style='color:#0000EE'>Sub</span></pre>Code eingefügt mit VBA in HTML 2.0 (http://vbahtml.origo.ethz.ch). Erstellt und getestet in Excel 2010. Zur korrekten Darstellung des Codebeispiels wird der Internetexplorer empfohlen.</blockquote>

cuthbert
21.09.2011, 13:19
super vielen dank!

Pit987
21.09.2011, 14:59
Hallo!
Hast Du einen PDF Drucker wie z.B. Acrobat.

Dann hast Du für den Namen der PDF mehr Möglichkeiten.