PDA

Vollständige Version anzeigen : Excel mit Makro als Pdf speichern


Martin06
11.07.2014, 06:47
Hallo

Ich möchte gerne eine Excel Datei via Makro automatisch als PDF speichern.
Der Dateiname der PDF sollte:
Den Zeileninhalt F5 haben + das aktuelle Datum

Ist das möglich in dieser Excel Datei eine Schaltfläche (Button) einzufügen auf den ich dann drücke und in den Speicherort der Datei automatisch mit dieser Dateibezeichnung eine PDF gespeichert wird?

Das wäre super
Bin da leider total überfragt wie das funktioniert.

Bitte um hilfe

Danke

chris-kaiser
11.07.2014, 09:16
Hi,

Sub aktivesBlattToPdf()
ChDir "c:\Temp\" 'anpassen 'oder thisworkbook.path
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("F5").Value & Format(Date, "YYYYMMDD") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub

Martin06
11.07.2014, 10:03
Dankeschön

wenn ich den pfad von oben rauskopiere und einfüge kommt die Meldung:

Laufzeitfehler '76':
Pfad nicht gefunden

muss ich in dieser zeile noch was ändern:
ChDir "c:\Temp\" 'anpassen 'oder thisworkbook.path

?

Mc Santa
11.07.2014, 10:16
Hallo,

Du sollst statt C:\Temp\ den Pfad eintragen, in dem du speichern willst.

VG

Martin06
11.07.2014, 12:29
danke

ich will immer in den pfad speichern wo die Excel gespeichert

Mc Santa
11.07.2014, 12:47
Dann so:
ChDir ThisWorkbook.path

Martin06
14.07.2014, 05:45
Vielen Dank
es funktioniert schon ansatzweise
jedoch speichert mir das makro immer aufs Desktop

hab den text hier

Sub aktivesBlattToPdf()
ChDir ThisWorkbook.Path
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("F5").Value & Format(Date, "YYYYMMDD") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub

chris-kaiser
14.07.2014, 06:23
Hi,

Sub aktivesBlattToPdf()
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\" & Range("F5").Value & Format(Date, "YYYYMMDD") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub

ansatzweise ist gut...
dann wird dieser Code wohl auch auf dem Desktop speichern. :)

Martin06
14.07.2014, 07:15
Jetzt Klappts Vielen Vielen Dank

Excelhalbwissen
22.05.2018, 13:14
Hallo,

der VBA Code ist schon fast was ich suche. Ich müsste jedoch anstelle des Datums einen Text einfügen "gültig ab 02.05.2018". Habe es selber versucht bin aber leider kläglich gescheitert.

Vielleicht kann mir jemand dabei helfen?

Gruß,
Nika

MisterBurns
22.05.2018, 13:23
Du schreibst statt der Zeile

ThisWorkbook.Path & "" & Range("F5").Value & Format(Date, "YYYYMMDD") & ".pdf", Quality:=xlQualityStandard, _

diese Zeile

ThisWorkbook.Path & "" & Range("F5").Value & " gültig ab 02.05.2018.pdf", Quality:=xlQualityStandard, _

Damit hat dann aber wirklich jede Datei die Endung "gültig ab 02.05.2018.pdf". Ist das wirklich in deinem Sinn?

Georg S.
11.06.2018, 09:34
Hallo. Ich hab nach der hier geschilderten Anweisung soweit alles eingerichtet. Und habe dieses Makron in die Excel-Schnellzugriffleiste eingefügt (damit ich Es auf unterschiedlichen Excel-Dateien anwenden kann). Mein Problem ist, dass Es mir die „unterschiedlichen“ Excel-Dateien (als PDF) in den Ort ablegt wo die Excel-Datei liegt in der ich dieses Makron erstellt habe.
Ich möchte gerne, dass Es mir die PDF-Datei in den Ort ablegt wo die aktuell bearbeitete Excel-Datei liegt.
Kann mir bitte hier jemand damit weiterhelfen?
Danke im Voraus!

Hier ist das Programm:
Sub SPEICHERNndPDF()

ChDir ThisWorkbook.Path
ActiveWorkbook.Save
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "" & Range("C1").Value & "_" & Range("C2").Value & ".pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End Sub

Hier hab ich noch ein Speichervorgang eingefügt “ActiveWorkbook.Save”

chris-kaiser
11.06.2018, 09:40
Hi,

ersetze ThisWorkbook durch activeworkbook

lg

Stormy81
30.08.2018, 05:28
hallo Zusammen, eigentlich habt ihr hier schon fast das was ich benötige.

Ich habe eine Excel Mappe erstellt:
1. Registerkarte: Daten für Dropdownlisten etc.
2. Registerkarte: Eingabeformular
3. Registerkarte: Ausgabemaske

Mein Problem ist das ich nicht weiß, wie ich NUR die Ausgabemaske als PDF abspeichern kann, vorallem so, das die darin stehenden Daten nicht verloren gehen. Die Daten werden alle vom Eingabeformular abgerufen :-)

Ich will jetzt noch einen Knopf im Eingabeformular anlegen, der einmal die Ausgabemaske ausdruckt (das habe ich schon gefunden):

Sub Drucken()

Sheets("Tabelle2").PrintOut

End Sub

Könnt ihr mir evtl. noch verraten, wie der Code aussehen muss, damit ich gleichzeitig die Ausgabemaske, sammt Daten als PDF mit "Speichern unter"?

Ich danke schon einmal im Vorraus^^

MisterBurns
30.08.2018, 06:16
1. Aktiviere den Makrorekorder
2. Speichere das gewünschte Tabellenblatt als .pdf ab
3. Beende den Makrorekorder

vorallem so, das die darin stehenden Daten nicht verloren gehen
Den Teil verstehe ich nicht. Wieso sollten durch ausdrucken/speichern Daten verloren gehen?

Stormy81
02.09.2018, 04:56
Naja, das Blatt das als PDF gespeichert werden soll, hat eigentlich "nur" Verweise von einem anderem Blatt, darum bin ich mir unsicher, ob die verwiesenen Inhalte abgespeichert werden.
Oder aber eben die Formeln, welche auf die Inhalte verweißt.

In letzterem Fall würde es nichts Anzeigen, da die verwiesenen Inhalte fehlen...

MisterBurns
02.09.2018, 08:53
Das hängt davon ab, was du bei dir einestellt hast. Excel bietet ja die Möglichkeit, anstatt Werten die Formeln anzeigen zu lassen. Das siehst du aber auf einen Blick am Bildschirm, ob dort Werte oder Formeln stehen. Dass im (pdf)Ausdruck Formeln stehen, während am Bildschirm Werte angezeigt werden, hätte ich noch nie gehört - welchen Sinn sollte das auch haben?
Aber mal eine ganz einfache Frage: Hast du vielleicht mal ausprobiert, welches Ergebnis dein pdf ergibt? Oder hast du einfach mal vorher eine Frage gestellt?

Volli76
20.06.2019, 12:22
Moin Moin,

kurze Frage zum Speichern, ich habe bereits eine Schaltfläche mit der ich gewisse Sheets Ausdrucke kann.


Sub Schaltfläche81_Klicken()
If Sheets("Sammelli").Range("J2").Value > 1000 Then
Sheets(Array("Tabelle 1.1.3.6", "Kontrolldok. LKW", "Abholauftrag", "Kontrolldok. Container")).PrintOut
ElseIf Sheets("Sammelli").Range("M2").Value > 8000 Then
Sheets(Array("Tabelle 1.1.3.6", "Abholauftrag", "Kontrolldok. Container", "LQ")).PrintOut
Else
Sheets(Array("Tabelle 1.1.3.6", "Abholauftrag", "Kontrolldok. Container")).PrintOut
End If

End Sub

Nun möchte ich gerne, das er gleichzeitig mit dem Drucken der Blätter das aktuelle Worksheet auch abspeichert, und das ganze als PDF und mit einer Bezeichnung, die sich in einem Feld befindet,

Sub aktivesBlattToPdf()
ChDir "V:ExportVersandkopien" 'anpassen 'oder thisworkbook.path
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
Range("M34").Value & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
End Sub

wie kann ich das umsetzen und verknüpfen ? der Speichercode funktioniert an sich leider auch irgendwie nicht. ( das Backslash Symbol ist vorhanden beim Pfad)

Danke
Marco