PDF erstellen und speichern | Excel VBA
Вставка
- Опубліковано 10 лип 2024
- Unsere Excel-Datei können wir automatisiert über ein VBA-Makro als PDF exportieren. Dabei können wir den Benutzer auswählen lassen, wie die PDF heißt und wo diese abgelegt werden soll oder wir legen es im Code fest.
Kostenloser VBA-Einstiegskurs: vbatrainer.mykajabi.com/offer...
VBA-Coaching: www.vbatrainer.de/
Beschreibung zum Video: www.vbatrainer.de/pdf-erstellen
________
LINKS zu den Excel VBA Grundlagenvideos
► Anfänger-Tutorial: www.vbatrainer.de/anfaenger-t...
►Tabellenblätter Ansprechen: www.vbatrainer.de/tabellenbla...
►String-Funktionen: www.vbatrainer.de/string-funk...
________
Timestamps
0:00 Ziel des Videos
0:40 Ansprechen des Tabellenblatts und ExportAsFixedFormat
1:30 Erstellung Dateipfad & Direktbereich
2:30 Dateipfad und Name aus Zelle
4:20 Öffnen der Datei nach der Erstellung
4:40 Erster Test mit festen Werten für Pfad und Name
5:07 Anpassung des Ausgabeformats
6:00 Ersetzen des Pfads und des Dateinamen durch Zellbezug
8:30 Testlauf mit Pfad und Name aus Zelle
9:00 Definition des exakten Exportbereichs & Test
10:08 Pfad und Name durch direkte Benutzereingabe definieren
11:54 Testlauf mit Benutzereingabe
12:27 Hinzufügen einer Abbruchvariante während dem Export
Hallo Kai, deine Erklärungen sind einfach zu verstehen und den eigenen Umsetzungen einzubauen.
Danke dafür und man sieht bzw. hört sich am 05.03.
Deine Kurse sind so gut und einfach nicht zu übertreffen! Es macht so viel Spaß, von Dir zu lernen. Auch mit der Umsetzung meiner eigenen Ideen klappt es inzwischen immer besser.
Vielen Dank für dein Lob!
Es freut mich sehr, dass dir meine Kurse dabei helfen, VBA zu lernen und deine eigenen Anwendungen umzusetzen.
Die Videos von dir sind immer genial. Nicht nur, weil du einen sauberen Programmierstil hast und Schritt für Schritt didaktisch sehr gut erklärst. Es sind die kleinen, wertvollen Hinweise nebenbei, die einen zwingen, deine Videos (Plural :-)) immer bis zum Ende anzuschauen.
Hey Matthias!
Danke für dein Feedback!
Lg, Kai
Schönes Video, durch deine super Erklärung der Zwischenschritte leicht verständlich und Anwendbar. Copy Paste ist immer schnell gemacht, aber die Erklärungen sind eben der Punkt auf dem i 👍 Danke für Deine Arbeit.
Hallo Matt, vielen Dank für dein Feedback. Es fließt tatsächlich relativ viel Arbeit rein, mir zu überlegen, wie ich die Zwischenschritte möglichst gut erkläre. Umso schöner zu hören, dass sich die Arbeit lohnt und es bei dir ankommt! LG Kai
Hi Kai, vielen dank, ich Binge grad deine Videos durch, für einen Neuling wie mich absolut verständlich. Danke dafür 🙂👍
Hi, freut mich, dass dir meine Videos gefallen :) LG Kai
Hallo Kai, - ich schließe mich den positiven Kommentaren an! 👌👌👌👍
Hab gestern den ganzen Tag gesucht, wie man die Datei (aus ner xltm) unter Pfadvorgabe (in einer Zelle) und Namensvorgabe (in einer Zelle) als xlsm speichern kann.
Nun als PDF, - ok. auch gut.
Da hat mir Dein Video hier, jetzt sehr geholfen.
Wäre mir n SuperThanks wert gewesen, aber UA-cam hat mich nicht gelassen.
Na dann beim nächsten Mal dann doppelt ;-)
Danke nochmal!
Das freut mich 👍
Wie immer Super erklärt, Danke fürs tolle Video.
Hallo Gerhard, vielen Dank für deinen Kommentar :)
tolles Video und super erklärt, vielen Dank hierfür 🙂
Freut mich Olli! Vielen Dank für deinen Kommentar :)
Super Erklärung!!! Danke schön
Hey Udo!
Danke für dein Feedback!
Lg, Kai
Mega!
Und vielen Dank!
Hallo Benno, gerne. Mich freut, dass es dir gefällt :)
nicer typ, geile tutorials
Danke 👌
Sehr, sehr gut erklärt
Hey -Red Ox-!
Danke für dein Feedback!
Lg, Kai
Du bist eindeutig der beste Mann wenn es darum geht VBA zu erklären. Kann man die erstellte PDF auch gleichzeitig verschlüsseln?
Hi Kai, super erklärt, danke dafür! Eine Frage, wie kann ich die Pdf-Erstellung auf nur die Zellen beschränken, in denen Werte enthalten sind? Also nur Zellen, die Werte und nicht Formeln in den Zellen enthalten! Hm?
Hi Chris, vielen Dank für deinen Kommentar. Du könntest die Tabelle filtern. Ich habe es gerade mit dem Autofilter ausprobiert und das hat wunderbar geklappt. D.h. Daten filtern und dann, wie im Video gezeigt, die Tabelle als PDF exportieren.
Ein Video zum Autofilter habe ich hier gemacht: www.vbatrainer.de/autofilter/
Ich hoffe, das hilft dir weiter! LG Kai
Hallo Kai, tolles Video, super erklärt.
Vielen Dank dafür.
Man kennt ja, dass in einer PDF bestimmte Bereiche für Eingaben erkennbar (Vorname, Nachname, Adresse,...) sind. Ich möchte zB in der PDF an mehreren Stellen ein Datum eingeben.
Ist es möglich, das in Excel zu erstellen? Evtl. könnte man das sogar farblich minimal absetzen?
Hallo Kai, ich find deine Erklärungen toll und leicht zu verstehen. Eine Frage hierzu ich habe alle Steps gefolgt aber beim erstellen der Pdf bekomme ich nur eine Spalte zu sehen - was mache ich falsch?
kann man die Pfadangabe verwenden um die erstellte Datei an eine Email anzuhängen? In Anlehnung an dein Video Excel als Dateianhang
Dazu kann dir mein Video zum Thema Mailversand weiterhelfen: ua-cam.com/video/mmghedfapfQ/v-deo.html
Hi Kai,
super Video hat mir sehr geholfen. Kurze Frage, welche Code brauche ich, damit ich einen bestimmte Druckbereich nur einschließe?
Liebe Grüße
Also mit Printarea code verbinden
Sehr gutes Video. Eine Frage zu PDFs aus Excel:
Ich habe einen Hyperlink von einem Tabellenbaltt zu einem anderem Tabellenblatt (beide in der gleiche Arbeitsmappe). Bei einem Export als PDF fehlen diese Verlinkungen dann aber wieder. Hast du dazu vielleicht auch eine Lösung. Würde mir super weiter helfen.
Das ist ein hervorragendes Video. wie kann man das ganze auch anstelle des C: Ordner in einen Sharepoint abspeichern?
Servus Kai, vorab vielen Dank für deine lehrreichen Videos. Du bringst die Themen super verständlich rüber ohne viel „ähh“ und „ähm“ oder hin und her. Ich habe eine Frage bezüglich des Pfads, egal ob bei dem erstellen einer PDF oder eines Ordners. Gibt es eine Möglichkeit, dass die Datei oder der Ordner direkt im selben Ordner wie die .xlsm erstellt wird? Bei uns sind die Dateien auf einem separaten Server gespeichert und der Pfad ist bei jedem User unterschiedlich. Kannst du uns hierbei helfen? Vielen Dank vorab für deine Antwort. LG Thomas
Hallo Thomas, mit
ThisWorkbook.Path
sprichst du den Pfad der Arbeitsmappe an und kannst das so dynamisch für jeden Benutzer gestalten.
LG Kai
@@KaiWeissmann Vielen Dank. =)
Bei der Ersetzung des Dateinamen durch einen Zellbezug hätte ich noch eine Frage: wie kann ich da z.b. wenn ich zum einen die Bestellnummer und die Artikelnummer aus meiner Excel nehme dazwischen einen Unterstrich einsetzen in der VBA ?
Mit einer String-Verkettung: Range("A1").Value & "_" & Range("B1").Value
Näheres dazu auch in meinem String Video: vbatrainer.de/string-funktionen/
LG Kai
Wieder einmal habe ich in Deinen Videos wertvolle Anregungen gefunden - Kompliment für Deine kompetenten und verständlichen Erklärungen.
Eine Frage hätte ich zum Code:
Range("A8:B54").ExportAsFixedFormat Type:=xlTypePDF, Filename:= ......
Gibt es für den Bereich (Range("A8:B54") auch eine Möglichkeit das dynamisch zu gestalten?
Danke dir Kai, wenn nun aber die Spalten auf 2 Seiten der PDF aufgeteilt werden, weil eben das Querformat nicht ausreicht? Dann müsste man doch sagen können, dass alle Spalten trotzdem auf ein Blatt müssen
Bin mir nicht sicher ob diese frage schon gestellt wurde. Kan man die PDF die man erzeugt auch Passwort schützen Direkt ( Vba code) oder Indirekt ( Adobe oder andre programme)
wie kann man das intellisense aktivieren? du schreibst zum Beispiel "Tabelle1." und dann erscheint ein dropdown-Menü für verschiedene Auswahlen. Bei mir ist das nicht der Fall! Unter Extras -> Optionen habe ich "Elemente automatisch auflisten" aktiv.
Wie ist es möglich das das Tabellenblatt in deinem Beispiel, auf das querformat im PDF angepasst wird. Bei mir geht dies über 3 Seiten
Hi, erstmal super Blog und super Video hat mir wirklich sehr bei meinem Projekt geholfen :) Ich habe das Problem, dass wenn ich das Exceldokument als xlsm speichere das PDF nicht mehr automatisch gespeichert wird. Was kann ich da machen?
Hallo, Kai!
Auch dieses Video habe ich mir zu Nutze gemacht, klasse.
Habe dennoch eine Nachfrage:
Ist es nicht möglich, den Bereich für die PDF-Erstellung statt mit CurrentRegion mit dem Namen der intelligenten Tabelle festzulegen?
Und wie müsste der Code dann lauten?
Gruß
Achim
Hallo Achim, freut mich, dass dir das Video gefällt.
Du kannst auch intelligente Tabellen statt der CurrentRegion ansprechen. Das machst du über
Tabelle1.Listobjects("NameDerTabelle")
LG Kai
@@KaiWeissmann Danke, Kai
@@KaiWeissmann Hallo, Kai. Vielleicht interessiert Dich eine detailliertere Rückmeldung:
1. Zu Beginn hatte ich den Code: "tb_Datenbank.Range("B11").CurrentRegion.ExportAsFixedFormat ..." Der funktionierte natürlich und war der Ausgangspunkt meiner obigen Nachfrage an Dich.
2. Auf der Grundlage Deiner Antwort änderte ich den Code in: "tb_Datenbank.ListObjects("tblBasisdaten").ExportAsFixedFormat ...". Da bekam ich aber die Fehlermeldung, dass diese Methode oder Eigenschaft nicht unterstützt wird.
3. Ich erinnerte mich an Dein Video der 4 Methoden zur Befüllung einer ListBox, hier List mit Range, und änderte den Code in:
Dim rng As Range
Set rng = tb_Datenbank.Range("tblBasisdaten")
rng.ExportAsFixedFormat ..."
Und siehe da, es wird eine PDF-Datei der Tabelle erstellt, allerdings ohne deren Überschriftenzeile, die aber doch auch zur intelligenten Tabelle namens "tblBasisdaten" gehört. Komisch ... Über eine Erklärung mit Tipp würde ich mich sehr freuen ;-)
Beste Grüße
Achim
Hallo Kai,
danke für die tollen Video-Tutorials.
Gibt es auch eine Möglichkeit PDF-Dateien auszulesen?
Viele Grüße
Ömer
Hallo Ömer, danke für deinen Kommentar :) Ja, das geht ebenfalls. Falls die Frage mehrfach aufkommt, würde ich dazu ein Video erstellen. LG Kai
Ich habe ebenfalls eine Frage in diese Richtung:
Wie kann ich derart abgelegte PDF wieder aufrufen und (vor allem) mittels VBA nach dem Öffnen auch drucken?
Hallo Kai,
ist es auch möglich bzw. es ist sicher möglich😅
aber wie kann ich mehrere Tabellen von verschiedenen Arbeitsblätter in der gleichen Arbeitsmappe in eine PDF zusammenfügen?
Vor dem Problem stehe ich ebenfalls noch. Würde mich auch interessieren ob bzw. wie das geht.
genau das würde mich auch interessieren
Top Video Kai,
Wenn ich das so mache wie in Video erstellt er die ganze Seite als pdf trotz Druckbereich festgesetzt
sehr informativ aber was mache ich wen ich nahmen und Speicher Ort behalten möchte als im selben Ordner und als selben nahmen Speicher halt nur als pdf
mfg Patrick
also ich habe Filename:=ActiveWorkbook.Path & "\" & ActiveWorkbook.Name & ".pdf" genuntz das ist auch fas richtig aber die Datei heißt dann XXX.xlsx.pdf die .xlsx endung muss weg ^^
Super! Ich quäle mich immer damit herum, Tabellen in PDF zu exportieren, so geht das ja im Handumdrehen!
Sag mal, gibt es auch die umgekehrte Möglichkeit über VBA PDF-Tabellen in eine Excel-Datei einzulesen?
Hi Tobias, freut mich, dass dir das Video gefällt! Ja, das klappt auch. Ich nehme es als Videoidee mal auf und wenn mehr Leute danach fragen, erstelle ich dazu ein Video. LG Kai
Das wäre, ein gutes Tutorial.
Geile Videos, sehr hilfreich und detailliert erklärt, vielen Dank dafür.
Ist es möglich die Skalierung des Drucks mittels VBA auf "Blatt auf einer Seite darstellen" fest zulegen? Mein Druckbereich ist größer als eine A4 PDF und ich würde es gerne vermeiden die Skalierung jedesmal vorher zu überprüfen, da ich die Datenbank auf verschiedenen PCs nutzen können muss. Vielen Dank im Voraus.
Ich würde vor dem Export als PDF in die Umbruchvorschau gehen (Ansicht > Umbruchvorschau) und dort den Bereich so festlegen, dass alles auf einem Blatt ist bzw. sich zumindest alle Spalten auf einem Blatt befinden. Danach dann den PDF-Export ausführen.
Wieder ein sehr interessanter Beitrag, habe schon sehr viele Anregungungen erhalten und anwenden können. Die Erstellung der pdf habe ich umgesetzt. Das Anzeigen der Datei über eine Userform mit dem Webbrowser-Steuerelemt funktioniert auch sehr gut, doch ergibt sich nach der zwei oder dreimaligen Anzeige der Dateien an anderer Stelle des Programms ein Funktionsausfall der Maus, der vor der Webbrowser-Anwendung nicht auftritt. In (geschützen) Arbeitsblättern mit drop-down Liste (erstellt aus der Datenüberprüfung, Quelle formatierte Tabelle) funktioniert die Mausfunktion hier nicht und es erfolgt ein Excel-Fehlerton. Alle anderen Mausaktivitäten sind möglich. Hast Du eventuell eine Erklärung für das Phänomen?
Hallo Kai, vielen Dank für deine super Videos. Ich hoffe du kannst mir weiterhelfen. Ich möchte gerne ein PDF in dem Etikettenformat 100 mm x 50 mm erzeugen um es später mit meinem Etikettendrucker drucken zu können. Leider bekomme ich das einfach nicht hin.
ich würde gerne eine bestehende PDF Datei in Microsoft Print to PDF "drucken" und davon nur bestimmte Seiten, da habe ich noch keine Lösung gefunden. Kann jemand helfen? Bisher gefundene Lösungen benötigen Adobe Acrobat pro
Vielen Dank für deinen Kommentar. Aufgrund vieler Anfragen, kann ich diese momentan leider nicht beantworten. Vielleicht hilft dir mein Video "KI beantwortet Fragen": ua-cam.com/video/Kl9vcB3ejgk/v-deo.html
Ich wünsche dir für deine Projekte alles Gute.
Danke für das suoer Video. Hab ich auch die Möglichkeit ein Tabellenblatt über eine Zelle zu definieren und diesen Tabellenblattnamen und diesen dann mit Fixen Tabellenblattnamen zu einer pdf-Datei zu erzeugen? Sheets(array("tabelle1", "tablle2", "tabellevariable")).select vielen Dank schonmal im voraus
Hallo Sandra, freut mich, dass dir das Video gefällt!
Dein Code funktioniert schon. Die Variable dann ohne Anführungszeichen übergeben.
LG Kai
Hallo, Das Video hat sehr weitergeholfen!
Ist es auch irgendwie möglich ein vorhandenes PDF Formular (Prüfprotokoll) mit den Daten aus einer Excel Tabelle automatisiert zu füllen und abzuspeichern?
SG Philipp