Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1312to1316
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
Inhaltsverzeichnis

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Q

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Q
17.05.2013 19:45:29
Eddie
Hallo,
ich habe ein großes Problem mit der Ausgabe von pdf.
Ein WKS wird mit folgendem Aufruf in ein pdf ausgegeben:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=..., Quality:=xlQualityStandard,  _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Soweit läuft das einwandfrei. Wenn aber jetzt jemand anders das pdf zur Ansicht öffnet, kann ich das Dokument nicht mehr überschreiben:
Run-time error '1004' Document not saved. The Document may be open ...
Das ist insofern überraschend, derjenige auf das Verzeichnis nur Leserechte hat. Selbst wenn ich bei der Datei das readonly Attribut setze, ändert es daran nichts.
Bei XPS ist das gleiche Problem. Bei Ausgabe als Excel Worksheet würde es gehen, das kommt aber aus anderen Gründen nicht in Frage.
Gibt es irgendeinen Weg zu verhindern, dass mir jemand, der sowieso nur Leserechte hat, mir die Berechtigung zum Schreiben wegnehmen kann?
Ich suche nach einer anderen Lösung, außer den Dateinamen, in eine höhere Version zu ändern.
Gruß Eddie

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Q
17.05.2013 23:58:47
Matze
Hi Eddie,
ich bin jetzt nicht der Fachmann dafür, aber ich denke mir mal solange die PDF geöffnet ist wirst du die "nicht" exportieren können.
Fragen: 1 was passiert denn wenn diese geschlossen ist?
2 exportierst du diese unter dem selben Namen?
hier ein gegooglter Link zum selben Thema (english)
http://www.mrexcel.com/forum/excel-questions/619135-run-time-error-1004-document-not-saved-when-exporting-pdf-visual-basic-applications.html
Matze

Anzeige
AW: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Q
18.05.2013 00:39:09
Eddie
Hallo Matze,
aber ich denke mir mal solange die PDF geöffnet ist wirst du die "nicht" exportieren können.

Warum geht das aber mit einer Excel Datei und mit einem PDF nicht?
1) Wenn das Dokument geschlossen ist, kann ich wieder exportieren. Ich will aber denjenigen nicht jedes mal vorher suchen.
2) Ja, es soll derselbe Name (Datei) sein
Den link hatte ich auch gefunden. Die Meldung ist die gleiche, jedoch scheinen die nachfolgenden postings eine andere Problemstellung zu behandeln. Zumindest sehe ich dort keine Lösung.
Ich habe so ganz leise das Gefühl, das Problem entsteht, weil man seit einer Weile pdf's auch mit Kommentaren und Markierungen versehen kann, also will der Reader im R/W Modus öffnen. Jedoch müsste er doch merken, dass das Dokument Schreibgeschützt ist?!
Gruß Eddie

Anzeige
AW: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Q
18.05.2013 09:03:46
mumpel
Hallo!
Eine Exceldatei ist nun mal keine PDF-Datei. In Excel funktioniert vieles anders.
Excel bzw. "ExportAsFixedFormat" kann nicht erkennen ob eine PDF-Datei schreibgeschützt geöffnet ist. Du musst Dich damit abfinden dass eine geöffnete PDF-Datei nicht ersetzt werden kann. Ist bei Winzip ja auch nicht anders. Du kannst eine geöffnete Excel-Datei nicht mit Winzip packen, solange die Datei geöffnet ist, also ein anderes Programm auf die Datei zugreift.
Gruß, René

AW: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Q
18.05.2013 11:07:15
Eddie
Hallo,
danke Euch
Ich habe es mir schon gedacht, aber da es schade ist, wollte ich mich Rückversichern.
Gruß Eddie

Anzeige
AW: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Q
19.05.2013 13:57:23
Eddie
Hallo,
auch wenn kaum Hoffnung besteht, habe ich mich entschlossen, das Häkchen für Frage offen erneut zu setzen. Vielleicht fällt doch noch jemand was ein.
Gruß Eddie

AW: ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Q
21.05.2013 09:46:08
fcs
Hallo Eddie,
die geöffnete PDF-Datei zu überschreiben wird nicht funktionieren. Das wird durch das Betriebssystem bzw. den Netztwerkserver verhindert.
Man kann aber den Fehler abfangen und versuchen einen alternativen Weg zu gehen.
Der alternative Weg hängt etwas davon ab, wie schnell die aktualisierte Version der PDF-Dtaei den anderen Anwendern zur Verfügung stehen muss.
Grundsätzlich wird die PDF-Datei in einem anderen Verzeichnis temporär gespeichert, wenn die Originaldatei geöffnet ist.
Alternative A:
Wenn die Aktualisierung nicht so eilt, dann werden mit einem zeitgesteuerten VB-Script oder einer BATCH-Datei Nachts die Dateien aus dem temporären in das Originalverzeichnis kopiert. Das solltest du dann mit dem Netzwerks-Admin abstimmen.
Beispielmakro:
Sub MakePDFFile()
Dim strPDF_Name As String, strPath As String, PathOriginal As String, PathTemp As String
PathOriginal = "C:\Users\Public\Test" 'ggf. anpassen
PathTemp = "C:\Users\Public\Test\Temp" 'ggf. anpassen
On Error GoTo Fehler
strPDF_Name = "TestPDF.pdf"
If fncMakePDF(strPDF_FileName:=PathOriginal & "\" & strPDF_Name) = False Then
'PDF-Datei ist zur Zeit geöffnet
'Prüfen, ob das temporär Verzeichnis existiert
If Dir(PathTemp, vbDirectory) = "" Then
VBA.MkDir Path:=PathTemp
End If
'ggf. vorhandene Datei gleichen Namens löschen
If Dir(PathTemp & "\" & strPDF_Name)  "" Then Kill PathTemp & "\" & strPDF_Name
'PDF in Temporär erstellen
If fncMakePDF(strPDF_FileName:=PathTemp & "\" & strPDF_Name) = True Then
MsgBox "PDF-Datei ist zur Zeit geöffnet." & vbLf _
& "PDF-Datei wurde in temporärem Verzeichnis erstellt.", _
vbInformation + vbOKOnly, "PDF-Datei aktives Blatt erstellen"
Else
MsgBox "PDF-Datei ist zur Zeit geöffnet." & vbLf _
& "Fehler beim Erstellen der PDF-Datei.", _
vbInformation + vbOKOnly, "PDF-Datei aktives Blatt erstellen"
End If
End If
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case Else
MsgBox "Fehler-Nr.: " & .Number & .Description
End Select
End With
End Sub
Function fncMakePDF(strPDF_FileName As String) As Boolean
'PDF-Datei des aktiven Blattes erstellen
On Error GoTo Fehler
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPDF_FileName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
fncMakePDF = True
Case Else
'        MsgBox "Fehler-Nr.: " & .Number & .Description, vbInformation, _
"Fehler beim erstellen der PDF-Datei"
fncMakePDF = False
End Select
End With
End Function
Alternative B:
Wenn die PDF-Datei so schnell wie möglich ins Originalverzeichniskopiert werden soll, dann kann man in Excel zeitgesteuert ein entsprechendes Kopiermakro starten, ggf. mit regelmäßiger Wiederholung.
Beispieldatei: https://www.herber.de/bbs/user/85422.xlsm
Gruß
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge