Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
180to184
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
180to184
180to184
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datei schon offen?

Datei schon offen?
19.11.2002 11:59:56
Dunja
Ich habe ein VB-Programm, in dem ich weiß, daß Excel geöffnet wurde. Dieses Programm schreibt Daten in eine spezielle Datei. Jetzt möchte ich prüfen, ob diese Datei schon offen ist oder nicht.

Mit Workbooks.Open("Name") öffne ich die Datei jedoch doppelt. Das will ich nicht.

Wie mache ich es, daß ich erkenne, daß die Datei offen ist und ich dann in die schon offene Datei schreibe?

Schon einmal herzlichen Dank für die Hilfe

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Datei schon offen?
19.11.2002 12:08:22
Steffen D
Probiers mal hiermit:

Function DateiIstFrei(ByVal sDateiname As String) As Boolean
Dim hFile As Integer
On Error Resume Next
hFile = FreeFile()
Open sDateiname For Random Access Read Lock Read Write As #hFile
If Err Then
DateiIstFrei = False
Else
DateiIstFrei = True
End If
Close #hFile
End Function


aufrufen musst du mit:

If DateiIstFrei("C:\Mappe.xls") = False Then
MsgBox "Datei ist geöffnet"
end if

die Funktion gibt False zurück wenn die Datei geöffnet ist, andernfalls gibt sie True zurück

Re: Datei schon offen?
19.11.2002 12:20:10
Dunja
Herzlichen Dnak schon einmal für diesen Tip, aber wie bekomme ich die Referenz zu der schon offenen Datei?
Anzeige
Re: Datei schon offen?
19.11.2002 12:28:33
Thomas Risi
Hallo

Versuch's mal so ...


Option Explicit

' wb ist das Objekt
'
Dim wb As Excel.Workbook


' Irgendeine Sub
    
    On Error Resume Next
    
    Set wb = myExcel.Workbooks("DeineDatei.xls")
    
    If wb Is Nothing Then
        Set wb = myExcel.Workbooks.Open("C:\DeinPfad\DeineDatei.xls")
    End If
    
    On Error GoTo 0
    
' End Sub
 

     Code eingefügt mit Syntaxhighlighter 1.15

Gruß

Thomas

Risi Thomas Softwareentwicklung


Anzeige
Re: Datei schon offen?
19.11.2002 12:31:30
Steffen D
Du schreibst zuerst, diese Funktion (DateiIstFrei) in ein beliebiges Standardmodul rein und dann kannst du sie mit:

'diese Zeile anpassen
DeineDatei="C:\Eigene Dateien\Mappe1.xls"

Antwort=DateiIstFrei(DeineDatei)
If Antwort=False Then MsgBox "Datei ist geöffnet"

Re: Datei schon offen?
19.11.2002 12:33:10
Udo RiHü
Hallo,

aktiviere einfach die Mappe und fang den Fehler ab, falls sie nicht geöffnet ist.

Gruss Udo

Re: Datei schon offen?
19.11.2002 12:56:25
Dunja
Sorry, ich habe mich nicht richtig ausgedrückt. Der Aufruf und das Auswerten, ob die Datei geöffnet ist oder nicht ist mir klar.

Mein Problem ist, daß ich keine MessageBox ausgeben möchte, sondern an dieser Stelle habe ich eine Variable vom Typ Excel.Workbook, welches initialisiert werden soll, genau mit der Datei, die geöffnet wurde. Ich untersuche nämlich im nächsten Schritt, ob ein bestimmtes Blatt existiert.

Anzeige
Re: Datei schon offen?
19.11.2002 13:23:45
Udo RiHü
Hallo Dunja,

kleine Ergänzung

Gruss Udo

Re: Datei schon offen?
19.11.2002 14:40:10
Dunja
Hallo, Udo,
an folgender Stelle:
Workbooks("Mappe1.xls").activate

bekomme ich den Fehler:
Laufzeitfehler 9

Ich habe auch schon geprüft, ob ich den falschen Namen eintrage. Das ist nicht der fall. Was kann ich da tun.

Danke und viele Grüße
Dunja

Re: Datei schon offen?
20.11.2002 12:30:40
Udo RiHü
Hallo,
versuchs mal mit
Windows("Mappe1.xls").activate

Gruss Udo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige