Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Schreibschutz-Info bei öffnen per VBA

Schreibschutz-Info bei öffnen per VBA
31.05.2004 13:54:22
Hofe
Hallo Freaks,
wenn ich in Excel eine Datei öffne, die im Netzwerk schon von einem anderen User verwendet wird, dann erscheint die Benachrichtigung "Datei ist zum Bearbeiten durch User X gesperrt." (Mit mehreren Reaktionsmöglichkeiten)
Wenn ich nun dieselbe Datei per VBA öffne, dann erscheint diese Meldung nicht, was einiges Schlamassel gibt, wenn ich die Datei ändere und dann unter dem Originalnamen speichern will.
Kann ich diese Meldung auch per VBA erhalten?
Der Parameter "notify" scheint einen anderen Zweck zu haben, die Recherche will auch nix sagen.

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Schreibschutz-Info bei öffnen per VBA
Ramses
Hallo
da gibt es mehrere Möglichkeiten.
Such dir eine aus ;-))


Option Explicit
Sub Check_File_Open()
'by Ramses
'prüft eine Datei auf möglichen Zugriff durch andere Programme
'oder Benutzer.
'Ist die Datei nicht geöffnet, wird eine Sicherungsdatei angelegt
'zur Weiterbearbeitung.
'Diese Sicherungsdatei muss am Ende des Codes wieder gelöscht werden
Dim myFso As Object
Dim FileToOpen As String, FileToCopy As String
Dim openCounter As Byte, Qe As Byte
Set myFso = CreateObject("Scripting.Filesystemobject")
FileToOpen = "C:\Pfad\Daten.txt"
FileToCopy = "C:\Pfad\TempDaten.txt"
openCounter = 0
'Prüfen ob Datei offen ist
ReCheckFile:
If IsFileOpen(FileToOpen) = True Then
    'Es werden insgesamt 3 Öffnungsprozeduren zugelassen
    'bevor abgebrochen wird
    If openCounter = 3 Then
        Qe = MsgBox("Datei konnte nicht geöffnet werden", vbCritical + vbOKOnly, "TimeOut-Fehler")
        Exit Sub
    End If
    '5 Sekunden warten
    Application.Wait (Now + TimeValue("00:00:05"))
    openCounter = openCounter + 1
    GoTo ReCheckFile
End If
'Sicherungsdatei anlegen
myFso.FileCopy FileToOpen, FileToCopy
'Weitere Anweisungen
'----
'Sicherungsdatei löschen
Kill FileToCopy
End Sub
Wird als allgemeine Function verwendet
Public Function IsFileOpen(ByRef path As StringAs Boolean
'von Günther Abel
Dim FileNr As Integer
Dim ErrorNr As Long
' Datei testweise öffnen:
On Error Resume Next
'FreeFile ist eine Funktion welche die nächste freie Nummer
'zur Bearbeitung zurückgibt
FileNr = FreeFile
Open path For Input Lock Write As #FileNr
ErrorNr = Err.Number
Close #FileNr
On Error GoTo 0
' Ggf. Fehler verarbeiten:
Select Case ErrorNr
Case 0
    'kein Fehler:
    IsFileOpen = False
Case 70
    'Permission denied':
    IsFileOpen = True
Case Else
    'sonstiger Fehler:
    IsFileOpen = True
    Err.Raise ErrorNr
End Select
End Function
Oder so
'CodeSequenz Start
Sub Check_Local_File_Open()
'ACHTUNG
'Der Vergleich wird mit Gross und Kleinschreibung gemacht
If Is_Open_Local_File("Test.xls") Then
    MsgBox "Schon geöffnet"
Else
    MsgBox ("Noch nicht geöffnet")
End If
End Sub
Gruss Rainer
Anzeige
AW: Schreibschutz-Info bei öffnen per VBA
31.05.2004 14:14:38
Hofe
Klappt bestens, Meister Ramses!
Schönen Feiertag noch!
Merci :-) Geschlossen o.T.
Ramses
...

176 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige