Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1904to1908
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

VBA - Prüfen ob Datei geöffnet ist

VBA - Prüfen ob Datei geöffnet ist
09.11.2022 10:30:00
Manu
Hallo,
ich habe folgendes Problem und komme nicht ganz auf die Lösung:
Ich möchte per VBA prüfen ob eine Datei bereits geöffnet ist -
1. wenn von einem anderen User geöffnet (also schreibgeschützt), dann Fehlermeldung (MsgBox)
2. wenn diese von mir geöffnet ist - dann Daten in diese Datei kopieren
3. wenn die Datei noch nicht geöffnet ist diese öffnen.
Irgendwie bekomme ich es nicht hin alle drei Fälle abzudecken.
Wenn die Datei von einem anderen User geöffnet ist, dann eine Fehlermeldung zu bekommen bzw. falls nicht von einem anderen User geöffnet öffnet es mir die Datei - das funktioniert mit folgendem Code:

Dim cb As Workbook
Set cb = Workbooks.Open(NeueDatei)
If cb.ReadOnly = True Then
MsgBox ("Datei ist bereits von anderem Benutzer geöffnet - bitte versuchen Sie die Aktualisierung später nochmal!")
cb.Close False
Else
....
Aber wie bekomme ich jetzt noch abgefragt ob ich die Datei schon geöffnet hab?
Danke
Viele Grüße Manu

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

Betreff
Datum
Anwender
Anzeige
AW: VBA - Prüfen ob Datei geöffnet ist
09.11.2022 10:47:04
Marc

Dim PDF_Bool As Boolean
PDF_Bool = TestOpenPDF("dein Pfad \" & dateinameMitEndung)
Und dazu die Funktion: TestOpenPDF

Function TestOpenPDF(DateiName As String) As Boolean
ThisWorkbook.Activate
Dim DateiNr As Long
Dim fehler As Long
On Error Resume Next
DateiNr = FreeFile()
Open DateiName For Input Lock Read As #DateiNr
Close DateiNr
FehlerNr = Err
On Error GoTo 0
Select Case FehlerNr
Case 0
TestOpenPDF = False
Case 53
'MsgBox "PDF wird erzeugt", vbOKOnly
TestOpenPDF = False
Case 70
TestOpenPDF = True
Case Else
'Error FehlerNr
'MsgBox "Fehler: " & FehlerNr, vbOKOnly
TestOpenPDF = False
End Select
End Function

Anzeige
AW: VBA - Prüfen ob Datei geöffnet ist
09.11.2022 11:52:04
Manu
Danke für deine schnelle Antwort. Ich hab die Lösung jetzt von Daniel genommen, da ich damit besser zurecht kam.
Gruß Manu
AW: VBA - Prüfen ob Datei geöffnet ist
09.11.2022 10:57:00
Daniel
Hi
Nun, als erstes prüft man, ob man selber die Datei schon geöffnet hat.
Wenn nicht, öffnet man sie.
Wenn man dann sicher ist, dass die Datei geöffnet ist, prüft man den Schreibschutz.

Dim wb AS Workbook
For each wb in Application.Workbooks
If wb.Name = "Dateiname ohne Pfad" then Exit for
Next
If wb is Nothing then set wb = Workbooks.Open("Dateiname mit Pfad")
If wb.readonly = true then
Code für schreibgeschützt
Else
Code für nicht schreibgeschützt.
End if
Gruß Daniel
Anzeige
AW: VBA - Prüfen ob Datei geöffnet ist
09.11.2022 11:50:22
Manu
Hallo Daniel.
es hat funktioniert :)
Herzlichen Dank !!
Gruß Manu

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige