Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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

Anzeige

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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

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