Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
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
VBA - Speichern/Druck als PDF - Fehler
20.12.2022 13:31:47
Toni
Liebe Community,
ich habe folgende Herausforderung. Ich möchte aus einem worksheet eine PDF ablegen. Der Name soll vorbelegt sein (Fixer Teil & ausgelesenes Jahr), der Pfad soll durch den Nutzer ausgewählt werden. Wenn der Name der Datei durch den Nutzer geändert wird, wird dieser übernommen.
Ich habe dabei zwei Probleme.
1. Der Dialog wird aufgerufen und der Name vorbelegt - das funktioniert
Nach dem Bestätigen bricht das Makro jedoch in dieser Zeile ab:
ActiveSheet.ExportAsFixedFormat OutputFileName:=.SelectedItems(1), ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, IncludeDocProps:=True, UseISO19005_1:=False
2. Mein zweites Problem ist, dass die Checkboxes (ActiveX) im PDF nicht zu sehen sind. Offenbar erkennt er diese nicht. Liegt es an einer Einstellung?
Ich könnte mir vorstellen, alternativ einen Druck über "Microsoft Print to PDF" (an NE01:) anzustarten, scheitere hier jedoch am Code. Der ABlauf wäre der gleiche. Ich bekomme noch den Drucker voreingestellt und den ersten Dialog geöffnet, nicht aber den Datainamen vorbelegt.
Mein Code:

Private Sub CommandButton4_Click()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
With fd
.InitialFileName = "IKS_Stichproben_SK_Jahr_" & Tabelle1.Range("B5").Value
.FilterIndex = 26 'PDF
If .Show = True Then
ActiveSheet.ExportAsFixedFormat OutputFileName:=.SelectedItems(1), ExportFormat:=wdExportFormatPDF, OpenAfterExport:=True, IncludeDocProps:=True, UseISO19005_1:=False
End If
End With
End Sub
Meine Datei:
https://www.herber.de/bbs/user/156854.xlsm
Großen Dank om Voraus,
Toni

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Speichern/Druck als PDF - Fehler
20.12.2022 14:06:12
peterk
Hallo
zu 1: Du verwendest WORD Syntax

ActiveSheet.ExportAsFixedFormat Filename:=.SelectedItems(1), Type:=xlTypePDF, OpenAfterPublish:=True, IncludeDocProperties:=True
zu 2: Ich weis auch nicht wieso die Controls nicht gedruckt werden.
Peter
AW: VBA - Speichern als PDF - Checkbox weg
20.12.2022 15:02:37
Toni
Hallo Peter,
vielen Dank für die Antwort. Das war offenbar das Problem. Jetzt gibt es nur noch das Problem mit den Checkboxes. Wenn ich ein PDF drucke, sind diese mit dabei. Beim Speichern als PDF nicht. Es liegt nicht am Kompatibilitätsmodus (PDF A) - dieser ist ausgestellt.
Beste Grüße
Toni
Anzeige
AW: VBA - Speichern als PDF - Checkbox weg
20.12.2022 16:20:54
peterk
Hallo
Ich hab mal etwas herumprobiert.
Wenn ich Deine Vorlage in ein neues Blatt kopiere und die Checkboxen dann auch kopiere (falls sie nicht mitkopiert werden) sind sie auch im PDF zu sehen (kopieren des ganzen Blattes bringt nix). Du musst dann auch die Makros ins neue Blatt kopieren.
Peter
AW: VBA - Problem Speichern PDF/ Checkbox leeren
21.12.2022 13:57:16
Toni
Hallo Peter,
vielen Dank, das hat geholfen. Ich habe noch zwei Probleme.
1. Mein Makro zum leeren der Felder funktioniert bei den Checkboxes nun nicht mehr. Diese werden nicht zurückgesetzt.

Private Sub CommandButton2_Click()
Dim Antwort As Integer
Antwort = MsgBox("Möchten Sie alle Felder leeren?", vbQuestion + vbYesNo)
If Antwort = vbYes Then
ActiveSheet.UsedRange.Select
For Each Zelle In Selection
If Zelle.Locked = False Then
If Zelle.MergeCells Then
If Zelle.Address = Zelle.MergeArea(1).Address Then
Zelle.MergeArea.ClearContents
End If
Else
Zelle.ClearContents
End If
Dim c As Object
For Each c In ActiveSheet.OLEObjects
If InStr(1, c.Name, "CheckBox") > 0 Then
c.Object.Value = False
End If
Next
End If
Next Zelle
MsgBox "Ihre Daten wurden gelöscht!"
Else
MsgBox "Ihre Daten wurden nicht gelöscht"
End If
ActiveSheet.Range("b5").Select
End Sub
2. Das PDF-Speichern funktioniert nun. Wenn der Dateiname bereits vorhanden ist, kommt die Abfrage, ob überschrieben werden soll. Bei Bestätigung bricht er trotzdem ab. ich vermute hier fehlt etwas für den Fall des Überschreibens im Code?

Private Sub CommandButton1_Click()
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
With fd
.InitialFileName = "IKS_Stichproben_SK_Jahr_" & Tabelle3.Range("B5").Value
.FilterIndex = 26 'PDF
If .Show = True Then
ActiveSheet.ExportAsFixedFormat Filename:=.SelectedItems(1), Type:=xlTypePDF, OpenAfterPublish:=True, IncludeDocProperties:=True
End If
End With
End Sub
Besten Dank
Toni
Anzeige
AW: VBA - Problem Speichern PDF/ Checkbox leeren
21.12.2022 15:03:05
peterk
Hallo
Also bei mir funktioniert folgender Code (das Zurücksetzen der Checkboxen sollte ausserhalb der Schleife geschehen!)

Private Sub CommandButton2_Click()
Dim Antwort As Integer
Antwort = MsgBox("Möchten Sie alle Felder leeren?", vbQuestion + vbYesNo)
If Antwort = vbYes Then
For Each Zelle In ActiveSheet.UsedRange
If Zelle.Locked = False Then
If Zelle.MergeCells Then
If Zelle.Address = Zelle.MergeArea(1).Address Then
Zelle.MergeArea.ClearContents
End If
Else
Zelle.ClearContents
End If
End If
Next Zelle
Dim c As Object
For Each c In ActiveSheet.OLEObjects
If InStr(1, c.Name, "CheckBox") > 0 Then
c.Object.Value = False
End If
Next
MsgBox "Ihre Daten wurden gelöscht!"
Else
MsgBox "Ihre Daten wurden nicht gelöscht"
End If
ActiveSheet.Range("b5").Select
End Sub
Zu 2: Das PDF ist wahrscheinlich noch im Reader geöffnet und kann daher nicht überschrieben werden.
Peter
Anzeige
AW: VBA - Problem Speichern PDF/ Checkbox leeren
21.12.2022 15:29:28
Toni
Hallo Peter,
besten Dank fürs Testen. Bei mir funktioniert es leider nicht. Zwar werden die Checkboxes nun im PDF mit angezeigt, aber nicht mehr geleert/zurückgesetzt.
https://www.herber.de/bbs/user/156880.xlsm
Beste Grüße
Toni
AW: VBA - Problem Speichern PDF/ Checkbox leeren
21.12.2022 15:49:17
peterk
Hallo
Da Deine CheckBoxen gruppiert sind mußt Du etwas anders vorgehen

Private Sub CommandButton2_Click()
Dim Antwort As Integer
Antwort = MsgBox("Möchten Sie alle Felder leeren?", vbQuestion + vbYesNo)
If Antwort = vbYes Then
For Each Zelle In ActiveSheet.UsedRange
If Zelle.Locked = False Then
If Zelle.MergeCells Then
If Zelle.Address = Zelle.MergeArea(1).Address Then
Zelle.MergeArea.ClearContents
End If
Else
Zelle.ClearContents
End If
End If
Next Zelle
Dim ole As OLEObject
Dim shp As Shape
Dim i As Integer
For Each shp In ActiveSheet.Shapes
If InStr(1, shp.Name, "Group") > 0 Then
For i = 1 To shp.GroupItems.Count
Set ole = shp.GroupItems(i).OLEFormat.Object
If InStr(1, ole.Name, "CheckBox") > 0 Then
ole.Object.Value = False
End If
Next
End If
Next shp
For Each ole In ActiveSheet.OLEObjects
If InStr(1, ole.Name, "CheckBox") > 0 Then
ole.Object.Value = False
End If
Next ole
MsgBox "Ihre Daten wurden gelöscht!"
Else
MsgBox "Ihre Daten wurden nicht gelöscht"
End If
ActiveSheet.Range("b5").Select
End Sub
Peter
Anzeige
AW: VBA - Problem Speichern PDF/ Checkbox leeren
04.01.2023 15:04:21
Toni
Hallo PEter,
lieben Dank und ein frohes neues Jahr. Ich war zwischenzeitig im Weihnachtsurlaub. Aktuell hast du all meine Probleme gelöst. Wir schauen mal, ob jetzt alles funktioniert.
Beste Grüße
Toni

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige