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

Prüfen ob Datei offen (ein- oder ausgeblendet) ist

Prüfen ob Datei offen (ein- oder ausgeblendet) ist
Peter
Hallo miteinander
Ich habe einer StringVariable strPfadDatei den vollständigen Pfad und ein Dateiname zugewiesen,
z.B. "C:\Muster\Dokumente\Test33.xls"
Nun überprüfe ich, ob die Datei vorhanden ist, wenn nicht, erzeugt das Aufrufen von "NotFound" eine Mitteilung und beendet das Programm.
Anschliessend überprüfe ich, ob die Datei geöffnet ist. Ist dies nicht der Fall, wird die Datei geöffnet.
Bei den folgenden Schritten bin ich bis jetzt gescheitert:
Ich überprüfen, ob die Datei eingeblendet ist oder nicht.
Wenn sie nicht eingeblendet ist, möchte ich sie einblenden; andernfalls aktivieren (wenn mehrere Workbooks-offen sind).
Kann mir jemand weiterhelfen?
Danke, Peter
If Dir(strPfaDat) = "" Then
NotFound (strPfaDat)
Else
JaNein = DateiGeoeffnet(strPfaDat)
End If
If JaNein = False Then Workbooks.Open strPfaDat
If Workbooks(strPfaDat).Visible = False Then
Workbooks(strPfaDat).Visible = True
Else
Workbooks(strPfaDat).Activate
End If
Public 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

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

Betreff
Benutzer
Anzeige
vielleicht so...
18.11.2010 18:56:14
Tino
Hallo,
kannst mal versuchen ob es hiermit funktioniert,
erste Tests sehen vielversprechend aus.
Sub Test()
Dim booIsOben As Boolean

booIsOben = CheckFileIsOben("C:\Ordner\Mappe2.xls")

If booIsOben Then
    MsgBox "Datei ist offen"
Else
    MsgBox "Datei ist geschlossen"
End If
End Sub

Function CheckFileIsOben(strFullName$) As Boolean
Dim oWB As Workbook, nCountWBs&
Dim iCalc As Integer

For Each oWB In Workbooks
    If oWB.FullName = strFullName Then
        CheckFileIsOben = True
        Exit Function
    End If
Next

With Application
    iCalc = .Calculation
    .EnableEvents = False
    .Calculation = xlCalculationManual
        
        nCountWBs = Workbooks.Count
        Set oWB = GetObject(strFullName)
        CheckFileIsOben = Workbooks.Count = nCountWBs
        If Not CheckFileIsOben Then oWB.Close False
    
    .EnableEvents = True
    .Calculation = iCalc
End With

End Function
Gruß Tino
Anzeige
ein Bug hat diese Version, ...
18.11.2010 19:20:47
Tino
Hallo,
wenn eine Datei bereits mit demselben Namen offen ist (nicht gleiche Datei), kommt es zum Fehler.
Gruß Tino
AW: ein Bug hat diese Version, ...
19.11.2010 08:38:10
Peter
Hallo Tino
Danke für dein Beitrag. Ein Punkt ist für mich noch offen - ob ich den nicht gesehen habe?
Ausgangslage:
Pfad: C:\Muster\Dokumente\
Datei: Text33.xls
String-Variablen sind wie folgt abgefüllt:
strPfa: "C:\Muster\Dokumente\"
strDat: "Text33"
strExt: ".xls"
strPfaDatExt: "C:\Muster\Dokumente\Text33.xls"
WB (as Workbook) habe ich mit
Set WB = GetObject(strPfaDatExt)
zugewiesen.
Angenommen, die Datei ist geöffnet, jedoch ausgeblendet (ganze Datei, nicht nur irgend ein Worksheet).
A) Wie lautet der Code, der mir den Zustand "Ausgeblendet" zurückgibt (resp. ein TRUE oder FALSE)?
B) Wie lautet der Code, mit dem ich die Datei einblende?
Danke für jede Hilfe.
Gruss, Peter
Anzeige
AW: Problem gelöst, owT
19.11.2010 10:30:47
Peter

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige