Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Speichern trotz geöffneter Datei

Speichern trotz geöffneter Datei
20.11.2017 13:33:09
Thomas
Hallo
Ich habe ein Problem. Ich habe eine Belegungsliste die auf einem Netzwerklaufwerk veröffentlich wird, Datei PDF.
Dort haben mehrere User Zugriff drauf.
Nun habe ich das Problem, wenn ich diese aktualisieren will und jemand diese Datei geöffnet hat, diese nicht unter den selben Namen speichern kann.
Gibt es eine Möglich dies dennoch zu tun?
Hier mal mein aktueller Code.
Worksheets("Monatsansicht").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"U:\Groups\Test\Test\Plan.pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Worksheets("Jahresplan Vorplanung").Activate
End Sub
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern trotz geöffneter Datei
20.11.2017 14:53:23
fcs
Hallo Thomas,
die Dateiverwaltung wird vom Betriebssystem gesteuert - das lässt sich nur schwer überlisten.
Statt einer Fehlermeldung mit Makroabbruch könntest du den Fehler abfangen und in regelmäßigen Zeitintervallen das Makro neu Starten.
Die Bestätigung nach Fehler kannst du natürlich auch weglassen und "nur" auf das erfolgreiche Speichern warten.
Gruß
Franz
Sub PDF_Speichern()
Dim wks As Worksheet
Dim sFileName As String
Dim datPause As Integer
On Error GoTo Fehler
Set wks = Worksheets("Monatsansicht")
sFileName = "U:\Groups\Test\Test\Plan.pdf"
wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFileName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
MsgBox "PDF-Datei erfolgreich gespeichert"
Worksheets("Jahresplan Vorplanung").Activate
Fehler:
With Err
Select Case .Number
Case 0
Case 1004
datPause = 10 ' max 59 Sekunden
If MsgBox("Datei zur Zeit geöffnet - in " & datPause _
& " Sekunden neuer Speicherversuch?", _
vbOKCancel + vbQuestion, "PDF-Speichern") = vbOK Then
Application.OnTime Now + TimeSerial(0, 0, datPause), "PDF_Speichern"
End If
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Speichern trotz geöffneter Datei
20.11.2017 15:06:23
Daniel
Hi
ein mehr oder weniger manueller Workaround wäre, dass du die PDF-Datei im Dateiexplorer mit dem Schreibschutzhäkchen versiehst (Datei mit rechter Maustaste anklicken, im Kontextmenü "Eigenschaften" wählen und dort bei "Allgemein - Attribute - Schreibgeschützt")
Wenn das Häkchen gesetzt ist, öffnet jeder eine Kopie dieser Datei.
Wenn du die PDF dann überarbeiten willst, müsstest du vor dem Speichern unter das Häkchen entfernen und kannst diese Datei dann normal öffnen oder überschreiben.
(die zeitgleich geöffneten Kopieren stören dich dann nicht weiter)
auf diese Weise kannsst du dir den schreibenden Zugriff auf diese Datei sichern.
ob man des An- und Abwählen des Häkchens auch per Excel-VBA machen kann, weiß ich nicht.
Vielleicht kennt sich da jemand anderes besser damit aus, ob und wie man die Explorer-Funktionen per VBA steuern kann.
Gruß Daniel
Anzeige
AW: Speichern trotz geöffneter Datei
20.11.2017 15:26:58
Thomas
Ich habe gerade überlegt, ob es nicht vielleicht einfacher ist, anstatt einer pdf das Tabellenblatt als html zu veröffentlichen.
Ich glaub, da kann man problemlos die Datei speichern, auch, wenn diese geöffnet ist.
Jetzt frag ich mich natürlich, wie muss ich meinen Code anpassen, das er es als html speichert?
Reicht es, einfach ...pdf in ...html zu ändern?
Worksheets("Monatsansicht").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlHtml, Filename:= _
"U:\Groups\Test\Test\Plan.html", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Worksheets("Jahresplan Vorplanung").Activate
End Sub/pre>
Oder muss der Code komplett anders aussehen?

Anzeige
AW: Diese Frage kannst du dir leicht selbst
20.11.2017 15:36:51
Daniel
beantworten, indem du die Datei von Hand im gewünschten Format speicherst und dabei den Makrorecorder mitlaufen lässt.
dann schaust du dir den aufgezeichneten Code an und vergleichst ihn mit deinem bisherigen Code zum Speichern als PDF.
Gruß Daniel
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Speichern trotz geöffneter Datei in Excel


Schritt-für-Schritt-Anleitung

Wenn Du eine Excel-Datei als PDF speichern möchtest, während sie von einem anderen Benutzer geöffnet ist, kannst Du den folgenden VBA-Code verwenden. Dieser Code behandelt den Fehler, der auftritt, wenn die PDF-Datei bereits geöffnet ist, und versucht es nach einer festgelegten Pause erneut.

Sub PDF_Speichern()
    Dim wks As Worksheet
    Dim sFileName As String
    Dim datPause As Integer

    On Error GoTo Fehler
    Set wks = Worksheets("Monatsansicht")
    sFileName = "U:\Groups\Test\Test\Plan.pdf"

    wks.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sFileName, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=False

    MsgBox "PDF-Datei erfolgreich gespeichert"
    Worksheets("Jahresplan Vorplanung").Activate

Fehler:
    With Err
        Select Case .Number
            Case 0
            Case 1004
                datPause = 10 ' max 59 Sekunden
                If MsgBox("Datei zur Zeit geöffnet - in " & datPause & " Sekunden neuer Speicherversuch?", _
                vbOKCancel + vbQuestion, "PDF-Speichern") = vbOK Then
                    Application.OnTime Now + TimeSerial(0, 0, datPause), "PDF_Speichern"
                End If
            Case Else
                MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description
        End Select
    End With
End Sub

Häufige Fehler und Lösungen

Fehler: PDF-Datei speichern nicht möglich

  • Dieser Fehler tritt auf, wenn die Datei bereits geöffnet ist. Der obige Code umgeht dieses Problem, indem er eine Fehlermeldung abfängt und einen neuen Speicherversuch nach einer kurzen Pause startet.

Fehler: PDF überschreiben wenn geöffnet

  • Wenn Du versuchst, die PDF-Datei zu überschreiben, während sie geöffnet ist, wird der Fehler ebenfalls angezeigt. Die Lösung ist, den oben genannten VBA-Code zu verwenden, um den Fehler zu behandeln.

Alternative Methoden

Eine alternative Methode, um eine Excel-Datei zu speichern, wäre das Speichern als HTML. Dies könnte dir helfen, die Datei zu speichern, auch wenn sie geöffnet ist. Hier ist ein Beispiel, wie Du den Code anpassen kannst, um als HTML zu speichern:

Worksheets("Monatsansicht").Activate
ActiveSheet.ExportAsFixedFormat Type:=xlHtml, Filename:= _
"U:\Groups\Test\Test\Plan.html", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Worksheets("Jahresplan Vorplanung").Activate

Praktische Beispiele

Wenn Du die PDF-Datei mit Schreibschutz speichern möchtest, kannst Du den Schreibschutz im Windows Explorer aktivieren. Klicke mit der rechten Maustaste auf die Datei, wähle "Eigenschaften" und aktiviere das Kontrollkästchen "Schreibgeschützt". Dadurch wird sichergestellt, dass andere Benutzer nur Kopien der Datei öffnen können.

Ein weiterer Workaround ist, die PDF-Datei in Excel zu exportieren, während Du eine andere Datei speicherst. Dies kann durch die Verwendung der Application.Workbooks.Add-Methode geschehen, um eine neue Arbeitsmappe zu erstellen und die Daten dort zu speichern.


Tipps für Profis

  • Automatisierung: Verwende den Application.OnTime Befehl, um den Speichervorgang in regelmäßigen Abständen zu wiederholen, falls die Datei beim ersten Versuch nicht gespeichert werden konnte.
  • Fehlerprotokollierung: Implementiere ein Fehlerprotokoll, um herauszufinden, wann und warum der Speichervorgang fehlschlägt. Dies kann dir helfen, häufige Probleme zu identifizieren.

FAQ: Häufige Fragen

1. Kann ich die PDF-Datei speichern, wenn sie von jemand anderem geöffnet ist? Ja, indem Du den oben genannten VBA-Code verwendest, kannst Du den Fehler abfangen und einen neuen Speicherversuch nach einer kurzen Pause starten.

2. Wie kann ich die Datei als HTML speichern? Du kannst den ExportAsFixedFormat-Befehl anpassen, um den Dateityp auf xlHtml zu ändern. Dies ermöglicht es dir, die Datei als HTML zu speichern, selbst wenn sie geöffnet ist.

3. Was passiert, wenn ich die PDF schreibgeschützt speichern möchte? Du kannst den Schreibschutz für die Datei im Windows Explorer aktivieren. Dadurch wird sichergestellt, dass andere Benutzer nur eine Kopie der Datei öffnen können.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige