Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Meldung wenn Datei geöffnet.

Forumthread: Meldung wenn Datei geöffnet.

Meldung wenn Datei geöffnet.
15.11.2004 12:13:25
Stan
Hallo Forum.
Mein Makro prüft ob eine Datei schon geöffnet ist.
Wenn ja soll eine Meldung kommen und alle Excel Dateien schlissen.
Die meldung kommt schon aber nur wenn die Datei im Netzwerk durch mich geöffnet ist. Wenn ich schreibe in dem Makro Netzwerkpfad, funktioniert es nicht.
Danke für Eure Hilfe.

Sub pruefen()
Dim wb As Workbook
For Each wb In Workbooks
If wb.Name = "nachschubprobleme verbal 2004.xls" Then
'so funktioniert nicht If wb.Name = "f:\fgk_pl\plw\hotline\nachschubprobleme verbal 2004.xls"
MsgBox "Datei schon offen."
Exit For
End If
Next
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Meldung wenn Datei geöffnet.
wernerB.
Hallo Stan,
wie gefällt Dir das (Makro und dazugehörige benutzerdefinierte Funktion)?

Sub DateiZustand()
Dim Pfad As String
Pfad = "F:\fgk_pl\plw\hotline\nachschubprobleme verbal 2004.xls"
If DateiIstFrei(Pfad) = False Then
MsgBox "Datei ist bereits geöffnet !"
Else
MsgBox "Datei ist z.Zt. nicht geöffnet !"
End If
End Sub


Function DateiIstFrei(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

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: Meldung wenn Datei geöffnet.
Stan
Danke Werner. Es funktioniert.
Kann man noch so was einbauen, dass nach der Meldung "Datei schon geöffnet" wird Excel geschlossen ohne die daten zu speichern. Mit Applikation.Quitt funktioniert nicht.
gruss Stan
AW: Meldung wenn Datei geöffnet.
WernerB.
Hallo Stan,
wieso sollte das nicht funktionieren ("Quit" mit einem "t" am Ende)?

Sub DateiZustand()
Dim Pfad As String
Pfad = "F:\fgk_pl\plw\hotline\nachschubprobleme verbal 2004.xls"
If DateiIstFrei(Pfad) = False Then
MsgBox "Datei ist bereits geöffnet !"
Application.Quit
Else
MsgBox "Datei ist z.Zt. nicht geöffnet !"
End If
End Sub

Gruß
WernerB.
Anzeige
AW: Meldung wenn Datei geöffnet.
Stan
Danke. Ein Schreibfehler.
Gruss Stan
;
Anzeige
Anzeige

Infobox / Tutorial

Excel: Meldung bei geöffneter Datei erstellen


Schritt-für-Schritt-Anleitung

Um eine Meldung anzuzeigen, wenn eine Datei bereits geöffnet ist, kannst du das folgende Makro verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden VBA-Code in das Modul:
Sub DateiZustand()
    Dim Pfad As String
    Pfad = "F:\fgk_pl\plw\hotline\nachschubprobleme verbal 2004.xls"

    If DateiIstFrei(Pfad) = False Then
        MsgBox "Datei ist bereits geöffnet !"
        Application.Quit ' Schließt Excel ohne zu speichern
    Else
        MsgBox "Datei ist z.Zt. nicht geöffnet !"
    End If
End Sub

Function DateiIstFrei(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
  1. Ersetze den Pfad F:\fgk_pl\plw\hotline\nachschubprobleme verbal 2004.xls durch den tatsächlichen Pfad deiner Datei.
  2. Schließe den VBA-Editor und gehe zurück zu Excel.
  3. Führe das Makro aus, indem du ALT + F8 drückst und das Makro DateiZustand auswählst.

Häufige Fehler und Lösungen

  • Fehler: "Datei nicht gefunden"
    Lösung: Überprüfe den angegebenen Pfad und stelle sicher, dass er korrekt ist und die Datei existiert.

  • Fehler: Anwendung schließt nicht
    Lösung: Achte darauf, dass du Application.Quit korrekt geschrieben hast. Es sollte nicht "Applikation.Quitt" sein, da das ein anderes Wort für quitt ist.

  • Fehler: Meldung erscheint nicht
    Lösung: Vergewissere dich, dass du das Makro korrekt ausführt und dass die Datei tatsächlich geöffnet ist.


Alternative Methoden

Eine andere Möglichkeit, um zu prüfen, ob eine Datei geöffnet ist, besteht darin, die Workbook-Objekte zu durchlaufen, wie im ursprünglichen Beitrag von Stan. Hier ist ein Beispiel:

Sub pruefen()
    Dim wb As Workbook
    For Each wb In Workbooks
        If wb.Name = "nachschubprobleme verbal 2004.xls" Then
            MsgBox "Datei schon offen."
            Exit For
        End If
    Next
End Sub

Praktische Beispiele

Wenn du mehrere Dateien überprüfen möchtest, kannst du den Pfad und die Dateinamen in eine Liste einfügen und das Makro entsprechend anpassen. Hier ist ein Beispiel:

Sub mehrereDateienPruefen()
    Dim dateien As Variant
    Dim i As Integer

    dateien = Array("nachschubprobleme verbal 2004.xls", "andereDatei.xlsx")

    For i = LBound(dateien) To UBound(dateien)
        If DateiIstFrei("F:\fgk_pl\plw\hotline\" & dateien(i)) = False Then
            MsgBox dateien(i) & " ist bereits geöffnet!"
        End If
    Next i
End Sub

Tipps für Profis

  • Verwende benutzerdefinierte Funktionen: Du kannst die Funktion DateiIstFrei anpassen, um weitere Informationen zu protokollieren oder um die Performance zu verbessern.
  • Error Handling: Implementiere ein robustes Error Handling, um unerwartete Fehler abzufangen.
  • Makros in der Schnellzugriffsleiste: Füge häufig verwendete Makros zur Schnellzugriffsleiste hinzu, um sie schneller auszuführen.

FAQ: Häufige Fragen

1. Was ist ein anderes Wort für quitt?
Das Wort "quitt" kann in diesem Kontext auch als "beenden" oder "schließen" interpretiert werden.

2. Warum funktioniert mein Makro nicht richtig?
Überprüfe die Syntax deiner VBA-Codes und stelle sicher, dass alle Variablen und Pfade korrekt definiert sind. Achte darauf, dass du keine Schreibfehler hast, wie z.B. "Applikation.Quitt" statt "Application.Quit".

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