Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1688to1692
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
[Checkbox] Makro - Tabellenblätter zu pdf
23.04.2019 10:32:00
gerald
Hallo zusammen,
bin relativ neu im VBA Umfeld unterwegs.
Mir geht es darum, eine große Exceldatei mit vielen Tabellenblättern in einzelne PDFs zu _
exportieren. Das ist mir mit folgendem Code soweit auch gelungen:

Sub pdfExport()
Dim sh As Worksheet
For Each sh In ActiveWorkbook.Worksheets
sh.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ActiveWorkbook.Path & "\Dateiordner\" & sh.Name & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Next
End Sub

Da es eine sehr große Datei ist würde ich nun gerne ein zweites Makro erstellen, welches eine Checkbox mit allen Tabellenblättern öffnet und dem anwender erlaubt, genau anzuklicken, welche der (insgesamt ca 60) Tabellenblätter als pdf exportiert werden soll. Nach der Auswahl der Tabellenblätter in der Checkbox sollte der weitere Prozess automatisch ablaufen.
Könnte mir jemand mit dem Code aushelfen?
Vielen Dank und Gruß!
Gerald

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: [Checkbox] Makro - Tabellenblätter zu pdf
24.04.2019 08:17:20
Gerald
Dieter,
vielen Dank für deine Antwort!
Leider kann ich die Datei im Netzwerk meiner Uni nicht ausführen (ich vermute es liegt an den Sicherheitsbestimmungen).
Gibt es auch einen VBA Code, der das Problem lösen könnte?
Gruß
Gerald
AW: [Checkbox] Makro - Tabellenblätter zu pdf
24.04.2019 14:16:35
Dieter
Hallo Gerald,
die hochgeladene Arbeitsmappe enthält VBA-Code zur Lösung des Problems. Vermutlich lässt die Uni Dateien aus dem Internet nicht zu, denn du hattest doch auch schon VBA-Code im Einsatz.
Vielleicht kannst die die UserForm und die beiden Module aus meiner Mappe in deine eigene Arbeitsmappe kopieren und dann ausführen. Ansosnsten versuch es über einen privaten Rechner.
Viele Grüße
Dieter
Anzeige
AW: [Checkbox] Makro - Tabellenblätter zu pdf
26.04.2019 08:24:47
Gerald
Hallo Dieter,
nochmals vielen Dank!
Ich stelle mich wohl leider etwas ungeschickt an, aber es funktioniert leider nicht den Code zu kopieren.
Ich habe einfach alle Module kopiert und in meine Mappe eingefügt, die ich in deiner Datei gefunden habe:
Option Explicit
Sub Darstellung_UF()
Load frmBlattListe
frmBlattListe.Show
End Sub Option Explicit
Private Sub btnAbbrechen_Click()
Unload Me
End Sub
Private Sub btnOK_Click()
Me.Hide
pdfExport
Unload Me
End Sub

Sub pdfExport()
Dim i As Long
Dim sh As Worksheet
With frmBlattListe.lstBlätter
For i = 0 To .ListCount - 1
If .Selected(i) Then
Set sh = wb.Worksheets(.List(i))
sh.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=ThisWorkbook.Path & "\Dateiordner\" & sh.Name & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End If
Next i
End With
End Sub
Private Sub UserForm_Initialize()
Dim ws As Worksheet
Set wb = ThisWorkbook
With lstBlätter
.Clear
.MultiSelect = fmMultiSelectExtended
For Each ws In wb.Worksheets
.AddItem ws.Name
Next ws
End With
End Sub
Option Explicit
Public wb As Workbook
--> Das liefert aber bereits beim Compilen mehrere Fehler, zB das " wb " nicht definiert wäre.
Die Userform zu kopieren stellt sich auch als gar nicht so leicht heraus. Habe dazu im Forum gelesen, dass man eine neue Datei daneben legen soll und die Userform einfach rüberziehen und umbenennen soll. Dieser Weg funktioniert leider nicht, da ich die Datei ja nur auf meinem privaten Rechner öffnen kann.
Viele Grüße
Gerald
Anzeige
AW: [Checkbox] Makro - Tabellenblätter zu pdf
26.04.2019 23:01:28
Dieter
Hallo Gerald,
ich gehe davon aus, dass das Programm funktioniert, wenn du es aus der heruntergeladenen Arbeitsmappe startest.
Um es aus der Arbeitsmappe "129325.xlsm" in deine eigene Arbeitsmappe - hier "Ziel.xlsm" genannt - zu übernehmen, öffnest du beide Arbeitsmappen in Excel, wechselst zur VBA-Oberfläche. Dort schiebst du im Projektexplorer (das ist das linke obere Fenster) die drei Bestandteile "frmBlattListe", "modDarstellung_UF" und "modVerarbeitung" mit der Maus zu dem Eintrag "VBAProject(Ziel.xlsm)". Die drei Bestandteile werden bei diesem Vorgang nicht verschoben, sondern kopiert.
Nun entnehme ich deiner Antwort, dass du nicht beide Dateien auf dem gleichen Rechner öffnen kannst. Dann hast du die Möglichkeit, die drei Bestandteile in drei Textdateien zu exportieren, diese Textdateien auf den zweiten Rechner zu transferieren und dort in die Mappe "Ziel.xlsm" zu importieren.
Export und Import geht für UserForm und Modul gleich. Die Exportdatei der UserForm erhält die Endung frm, die Textdateien der Module erhalten die Endung bas.
Zum Export:
Rechtsklick im Projektexplorer auf frmBlattListe | Eintrag "Datei exportieren..." aus dem Kontextmenü auswählen | Speicherplatz wählen | OK (Standardname: frmBlattListe.frm), analog bei den Modulen.
Zum Import:
Rechtsklick im Projektexplorer auf "VBAProject(Ziel.xlsm)" | Eintrag "Datei importieren..." aus dem Kontextmenü auswählen | zu importierende Datei auswählen.
Zum Start des Programms:
Du startest nicht das Programm "pdfExport", sondern das Programm "Darstellung_UF". Der Variablen wb wird nur in der Initialize-Prozedur der UserForm ihr Wert zugewiesen.
Viele Grüße
Dieter
Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige