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

Ob Datei schon geöffnet ist

Ob Datei schon geöffnet ist
Kurt
Guten Tag Fach-Frauen und Männer,
irgendwie verzweifel ich gerade, hänge 3h am PC ohne ERFOLG.
Ich möchte Daten von einer Datei in die andere Datei kopieren.
Es soll aber vorher geprüft werden ob die Datei zum kopieren schon geöffnet ist.
Wenn ja kann kopiert werden, sonst Info Die Datei muß erst geöffnet werden !
gruß Kurt P
AW: Ob Datei schon geöffnet ist
09.01.2011 13:12:46
Kurt
Hey Ransi,
das war schnell.
Public Sub TestePfad()
Dim sPfad As String
'  sPfad = "C:\Eigene Dateien\Test.xls" ' Pfad ändern für Tests
sPfad = "Lager.xls" ' Pfad ändern für Tests
MsgBox DateiGeoeffnet(sPfad)
End Sub

Private Function DateiGeoeffnet(DerPfad As String) As Boolean
' Bei shared Workbooks, schreibgeschützten Mappen o.ä.. kann dies auch ein falsch zurückgeben.
On Error Resume Next
Open DerPfad For Binary Access Read Lock Read As #1
Close #1
If Err.Number  0 Then
DateiGeoeffnet = True
Err.Clear
End If
End Function

habe gerade getestet, es kommt immer eine Fehlermeldung.
Egal ob mit Pfad oder ohne, was mache ich Falsch ?
Ich habe z.b. eine Datei gerade offen "Test2", wenn die offen ist soll eine Box kommen
Es kann kopiert werden sonst die Datei müssen Sie öffnen !
gruß Kurt P
Anzeige
AW: Ob Datei schon geöffnet ist
09.01.2011 13:16:06
ransi
HAllo Kurt
Die Extension musst du mitangeben.
Versuch mal C:/Pfad/Test2.xls
ransi
AW: Ob Datei schon geöffnet ist
09.01.2011 13:24:53
Kurt
Hallo Ransi,
wenn ich den Pfad angebe kommt "FALSCH"
Wenn ich die Datei teste die offen ist kommt Laufzeitfehler 70
Zugriff verweigert, die MSGBOX erscheint leider nicht.
gruß Kurt P
AW: Ob Datei schon geöffnet ist
09.01.2011 13:56:04
Tino
Hallo,
ich würde es in etwa so angehen.
Sub Beispiel_()
Dim strFullname$, FileObject As Workbook
'Pfad zur Datei 
strFullname$ = "C:\Ordner\MeineDatei.xls"

Set FileObject = File_Oben(strFullname)

If Not FileObject Is Nothing Then
    'hier kann mit der Datei FileObject gearbeitet werden 
    'Code 
    '... 
    '... 
    '... 
End If
End Sub

Function File_Oben(strFullname$) As Workbook
Dim FileObject As Workbook

'prüfen ob offen 
For Each FileObject In Workbooks
    If FileObject.FullName = strFullname Then
        Set File_Oben = FileObject
        Exit For
    End If
Next FileObject

If File_Oben Is Nothing Then 'Datei nicht geöffnet? 
    'Abfrage ob geöffnet werden soll 
    If MsgBox("Datei ist nicht offen!" & vbCr & "Soll die Datei geöffnet werden?!", _
              vbExclamation + vbYesNo, "Datei öffnen?") = vbYes Then
        'Error Behandlung, z. Bsp. Datei mit selben Namen bereits offen 
        On Error GoTo ErrorH:
            Set File_Oben = Workbooks.Open(strFullname)
            'Datei Schreibgeschützt, Datei war nicht offen 
            If File_Oben.ReadOnly Then
                File_Oben.Close False
                GoTo ErrSchreibschutz
            End If
    End If
Else
    'Datei Schreibgeschützt, bereits geöffnet 
    If File_Oben.ReadOnly Then
        GoTo ErrSchreibschutz
    End If
End If

Exit Function

'Fehlerbehandlungen ***** 
ErrorH:
MsgBox Err.Description, vbCritical + vbMsgBoxSetForeground + vbMsgBoxHelpButton, "Error: " & Err.Number, Err.HelpFile, Err.HelpContext
Set File_Oben = Nothing
Exit Function

ErrSchreibschutz:
MsgBox "Datei ist Schreibgeschützt", vbCritical
Set File_Oben = Nothing
End Function
Gruß Tino
Anzeige
Perfekt
09.01.2011 14:33:52
Kurt
Hallo Tino,
das Makro ist perfekt.
Nur noch kleine FRage, Wo setze ich die MSGBOX hin, wenn die Datei geöffnet ist,
..."Sie können weiter Arbeiten",
dann soll das Makro ja weiterlaufen.
gruß Kurt P
AW: Perfekt
09.01.2011 14:50:18
Tino
Hallo,
die Msgbox kannst Du dort einfügen wo ich als Kommentar
'hier kann mit der Datei FileObject gearbeitet werden
'...
geschrieben habe.
Gruß Tino
AW: Perfekt -) DANKE
09.01.2011 15:02:38
Kurt
AW: Ob Datei schon geöffnet ist
09.01.2011 14:01:35
Reinhard
Hallo Kurt,
Sub Test()
MsgBox Offen("c:\test\MeineDatei.xls")
End Sub
Function Offen(PfadDatei As String) As Boolean
Dim wkb As Workbook
For Each wkb In Workbooks
If wkb.FullName = PfadDatei Then
PfadDatei = True
Exit For
End If
Next wkb
End Function

Gruß
Reinhard
Anzeige
Es kommt immer "Falsch"
09.01.2011 14:30:32
Kurt
Hallo Reinhard,
leider kommt nur Falsch, egal ob ich Sie geöffnet habe oder nicht !
gruß Kurt P
AW: Es kommt immer "Falsch"
09.01.2011 15:20:50
Reinhard
Hallo Kurt,
mein Fehler.
Sub Test()
MsgBox Offen("c:\test\Beispiel1.xls")
End Sub
Function Offen(PfadDatei As String) As Boolean
Dim wkb As Workbook
For Each wkb In Workbooks
If UCase(wkb.FullName) = UCase(PfadDatei) Then
Offen = True
Exit For
End If
Next wkb
End Function

Gruß
Reinhard
Ist mir schon peinlich
09.01.2011 16:04:08
Kurt
HAllo Reinhard,
habe so reingesetzt.
Egal ob offen oder nicht, es wird immer Falsch angezeigt !
gruß Kurt P
AW: Ist mir schon peinlich
09.01.2011 16:32:36
Daniel
Hi
ich würde das einfacher machen:
Sub Test()
MsgBox Offen("c:\test\Beispiel1.xls")
End Sub
Function Offen(Datei as String) as Boolean
Dim wb As Workbook
On Error Resume Next
set wb = Workbooks(Datei)
on Error Goto 0
Offen = not(wb is Nothing)
End Function

der Dateiname ist ohne Pfad, dafür aber mit korrekter Dateierweiterung einzugeben.
Gruß, Daniel
Anzeige
Ich verstehe es nicht wieder Fehler
09.01.2011 16:50:44
Kurt
Hallo Daniel,
habe mit Verzeichnisse und ohne getestet, immer Fehler:
Laufzeitfehler 9
Index außerhalb des gültigen Bereiches
gruß Kurt P
AW: Ich verstehe es nicht wieder Fehler
09.01.2011 17:42:10
Daniel
Hi
dann setz mal in den Extras-Optionen-Allgemein-Unterbrechen bei Fehlern die Einstellung auf "bei nicht verarbeiteten Fehlern"
Gruß, Daniel
Jetzt kommt wieder Falsch
09.01.2011 17:46:01
Kurt
Hallo Daniel,
habe ich gemacht,
jetzt kommt wieder Falsch.
gruß Kurt P
AW: Jetzt kommt wieder Falsch
09.01.2011 18:02:41
Daniel
wenn Falsch kommt, ist die Datei mit dem Dateinamen, den du eingegeben hast, auch nicht geöffnet.
wenn sie geöffnet ist, kommt WAHR.
bei mir funktionierts.
Hast du die Dateierweiterung korrekt eingegeben?
gruß, Daniel
Anzeige
Wo setze ich jetzt die Info Box ?
09.01.2011 18:04:54
Kurt
Hallo Daniel,
jawohl klappt, wo setzte ich die InfoBox, das die Datei nicht offen ist ?
gruß Kurt P
AW: Wo setze ich jetzt die Info Box ?
09.01.2011 18:21:37
Daniel
wo du willst
die Funktion liefert ja nur das Ergebnis WAHR oder FALSCH
das mit der Infobox musst du dann so einbauen, wie Reinhard es gemacht hat.
Gruß, Daniel
Tausend Dank ! an Alle ! --)
09.01.2011 18:25:42
Kurt

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige