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

Forumthread: wenn Datei geöffnet, dann aktivieren

wenn Datei geöffnet, dann aktivieren
walter
Hallo,
kann mir bitte jemand helfen.
Ich möchte prüfen, ob eine Datei geöffnet ist. Wenn ja, dann soll sie aktiviert (in den Vordergrund gestellt) werden.
Mein Code sieht jetzt so aus (habe ich bei herber gefunden).
Die Codezeile Workbooks(sFile).open produziert einen Laufzeitfhler 9.
Sub TestFileOpen()
Dim iOpen As Integer
Dim sFile As String
sFile = "C:\TMP\Pflegeurlaub-Test\Pflegeurlaub-Antrag.xls"
If sFile = "" Then Exit Sub
iOpen = TestOpen(sFile)
Select Case iOpen
'Case 0: MsgBox "Datei " & sFile & " ist frei"
Case 0: Workbooks.Open (sFile)
Case 1: MsgBox "Datei " & sFile & " ist geöffnet"
Workbooks(sFile).Activate
Case 2: MsgBox "Datei " & sFile & " wurde nicht gefunden"
End Select
End Sub
Private Function TestOpen(sPath As String) As Integer
If Dir(sPath) = "" Then
TestOpen = 2
Else
On Error GoTo ERRORHANDLER
Open sPath For Random Access Read Lock Read Write As #1
Close #1
End If
ERRORHANDLER:
If Err = 70 Then TestOpen = 1
End Function
Danke im Voraus!
Anzeige

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

Betreff
Benutzer
Anzeige
AW: wenn Datei geöffnet, dann aktivieren
13.01.2011 10:31:43
Heiko
Hallo Walter,
wenn du nur prüfen willst ob sie offen ist und wenn ja dann in den Vordergrund hollen willst, dann tut es dieser Code.
Sub Testtt()
On Error Resume Next
Workbooks("C:\TMP\Pflegeurlaub-Test\Pflegeurlaub-Antrag.xls").Activate
On Error GoTo 0
End Sub
Wenn du Sie öffnen willst wenn sie nicht offen ist, müßte da noch ein wenig mehr Code rein.
Aber deine Frage lautet ja nur in den Vordergrund wenn offen.
Gruß Heiko
Anzeige
AW: wenn Datei geöffnet, dann aktivieren
13.01.2011 11:08:55
walter
Hallo,
danke für deine rasche Info,
ich möchte die Datei, falls sie nicht offen ist, auch öffnen, das funktioniert aber mit "meinem Code" bisher auch schon.
Vielleicht kannst du mir den Code noch zukommen lassen.
DANKE!
walter
AW: wenn Datei geöffnet, dann aktivieren
15.01.2011 19:02:19
Heiko
Hallo Walter,
dann vieleicht so:
Sub Testtt()
Dim lngErr As Long
Dim strPfadundDatei As String
' Dateipfad hier anpassen
strPfadundDatei = "C:\Copy\Muell.xls"
On Error Resume Next
Workbooks(strPfadundDatei).Activate
lngErr = Err.Number
On Error GoTo 0
If lngErr  0 Then
If Dir(strPfadundDatei)  "" Then
Workbooks.Open (strPfadundDatei)
Else
MsgBox "Datei nicht gefunden", vbInformation
End If
End If
End Sub

Gruß Heiko
Anzeige
AW: wenn Datei geöffnet, dann aktivieren
17.01.2011 08:45:22
walter
Hallo Heiko,
danke sehr, das funktioniert super!
walter
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Datei aktivieren, wenn sie geöffnet ist


Schritt-für-Schritt-Anleitung

Um in Excel zu prüfen, ob eine Datei geöffnet ist und sie gegebenenfalls zu aktivieren oder zu öffnen, kannst du folgenden VBA-Code verwenden:

Sub TestFileOpen()
    Dim iOpen As Integer
    Dim sFile As String
    sFile = "C:\TMP\Pflegeurlaub-Test\Pflegeurlaub-Antrag.xls"
    If sFile = "" Then Exit Sub
    iOpen = TestOpen(sFile)
    Select Case iOpen
        Case 0: Workbooks.Open (sFile)
        Case 1: Workbooks(sFile).Activate
        Case 2: MsgBox "Datei " & sFile & " wurde nicht gefunden"
    End Select
End Sub

Private Function TestOpen(sPath As String) As Integer
    If Dir(sPath) = "" Then
        TestOpen = 2
    Else
        On Error GoTo ERRORHANDLER
        Open sPath For Random Access Read Lock Read Write As #1
        Close #1
    End If
ERRORHANDLER:
    If Err = 70 Then TestOpen = 1
End Function

Dieser Code prüft, ob die Datei Pflegeurlaub-Antrag.xls bereits geöffnet ist. Wenn sie geöffnet ist, wird sie aktiviert. Andernfalls wird sie geöffnet.


Häufige Fehler und Lösungen

  1. Laufzeitfehler 9

    • Ursache: Dieser Fehler tritt auf, wenn du versuchst, auf eine nicht geöffnete Datei zuzugreifen.
    • Lösung: Stelle sicher, dass der Dateipfad korrekt ist und die Datei existiert. Verwende die Funktion TestOpen, um sicherzustellen, dass die Datei geöffnet werden kann.
  2. Datei nicht gefunden

    • Ursache: Der angegebene Dateipfad ist falsch.
    • Lösung: Überprüfe den Pfad und die Dateinamen auf Tippfehler.

Alternative Methoden

Falls du eine einfachere Methode bevorzugst, um zu prüfen, ob eine Datei geöffnet ist, kannst du den folgenden Code verwenden:

Sub Testtt()
    On Error Resume Next
    Workbooks("C:\TMP\Pflegeurlaub-Test\Pflegeurlaub-Antrag.xls").Activate
    On Error GoTo 0
End Sub

Dieser Code aktiviert die Datei, wenn sie bereits geöffnet ist. Wenn sie nicht geöffnet ist, passiert nichts.


Praktische Beispiele

Hier ist ein weiteres Beispiel, das zeigt, wie du eine Datei öffnest, wenn sie nicht bereits geöffnet ist:

Sub Testtt()
    Dim lngErr As Long
    Dim strPfadundDatei As String
    strPfadundDatei = "C:\Copy\Muell.xls"
    On Error Resume Next
    Workbooks(strPfadundDatei).Activate
    lngErr = Err.Number
    On Error GoTo 0
    If lngErr <> 0 Then
        If Dir(strPfadundDatei) <> "" Then
            Workbooks.Open (strPfadundDatei)
        Else
            MsgBox "Datei nicht gefunden", vbInformation
        End If
    End If
End Sub

In diesem Beispiel wird die Datei Muell.xls aktiviert, wenn sie geöffnet ist; andernfalls wird sie geöffnet, sofern sie vorhanden ist.


Tipps für Profis

  • Verwende On Error Resume Next, um Fehler zu ignorieren, während du überprüfst, ob eine Datei geöffnet ist. Das kann helfen, Laufzeitfehler zu vermeiden.
  • Achte darauf, den vollständigen Dateipfad anzugeben, um das Risiko von Fehlern beim Öffnen oder Aktivieren der Datei zu verringern.
  • Wenn du mit mehreren Dateien arbeitest, kannst du die Funktion TestOpen erweitern, um mehrere Dateien gleichzeitig zu prüfen.

FAQ: Häufige Fragen

1. Wie kann ich in Excel VBA prüfen, ob eine Datei geöffnet ist?
Du kannst eine Funktion verwenden, die versucht, die Datei zu öffnen. Wenn ein Fehler auftritt, ist die Datei wahrscheinlich geöffnet.

2. Was mache ich, wenn ich die Datei nur aktivieren möchte?
Verwende den einfachen Code, der nur die Aktivierung der Datei durchführt, ohne sie zu öffnen.

3. Welche Excel-Version benötige ich für diesen Code?
Der bereitgestellte Code funktioniert in den meisten Versionen von Excel, die VBA unterstützen, einschließlich Excel 2010 und neuer.

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