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

Forumthread: Workbook open

Workbook open
12.09.2002 18:25:09
Caroline
Guten Abend

Ich muss mittels VBA prüfen, ob eine Datei bereits geöffnet ist. Wenn nicht, dann soll sie geöffnet werden.

Kann mir jemand verraten, wie das geht?

Danke.
Carol

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Workbook open
12.09.2002 18:28:13
Hajo_Zi
Hallo Caroline

wenn Du nicht im Netz meinst

227. Prüfen ob Datei schon offen
Private Sub Workbook_Open()
For Each x In Workbooks
If x.Name = "test.xls" Then
MsgBox "Datei ist schon geöffnet!"
GoTo weiter
End If
Next
MsgBox "Test wird automatisch geöffnet!"
Workbooks.Open FileName:="C:\Eigene Dateien\Test.xls"
weiter:
End Sub


Gruß Hajo

Anzeige
Re: Workbook open
12.09.2002 18:45:54
PeterH
Hallo Hajo!

Das ist auch genau mein Thema. Ich habe dazu noch eine Zusatzfrage?

Kann ich da auch noch eine Variable einbauen, und wenn ja - wie-

Gruß

Peter

Re: Workbook open
12.09.2002 18:45:58
Caroline
Hallo Hajo

Danke für die schnelle Antwort.

Folgefrage: Das prüft jetzt ob eine Datei geöffnet ist und funktioniert auch prima.

Wenn ich nun aber prüfen möchte, ob zwei oder drei Dateien geöffnet sind, wie muss ich das ausbauen?

Bitte entschuldige, dass ich nicht gleich so gefragt habe.

Danke.
Carol

Anzeige
Re: Habs gefunden
12.09.2002 18:53:04
Caroline
Hallo Hajo

Habs gefunden:

For Each x In Workbooks
If x.Name <> "aaa.xls" Then _
Workbooks.Open "aaa.xls"
If x.Name <> "bbb.xls" Then _
Workbooks.Open "bbb.xls"
Next x

Nochmals Danke für Deine schnelle Hilfe.
Ciao
Carol

Re: Workbook open
12.09.2002 18:53:50
Hajo_Zi
Hallo Peter

da mußt Du schon Deine Frage ganz beschreiben. Wofür Variable??

Gruß Hajo

Anzeige
Re: Workbook open
12.09.2002 19:03:41
PeterH
Sorry wenn ich zu undeutlich war.

Ich möchte von meiner geöffneten Datei in eine andere Datei die am Netz liegt, einzelne Tabellenblätter verschieben/kopieren. Diese andere Datei wechselt aber ständig den Namen - abhängig vom Datum (kann ich leider nicht verhindern).

Daher war meine leienhafte Überlegung ich gebe einfach eine Variable ein und kann damit das Problem lösen.
Ich hoffe es ist irgendwie verständlich.

Gruß

Peter

Anzeige
Re: Workbook open
12.09.2002 19:11:37
Hajo_Zi
Hallo Peter

vielleich habe ich es richtig verstanden.

Gruß Hajo

Re: Danke Super
13.09.2002 00:36:08
PeterH
Hallo Hajo

Danke für Deine Hilfe.

Hat wunderbar funktioniert, habe lediglich den Pfad ergänzt und es war OK

Gruß

Peter

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Workbook öffnen und prüfen, ob bereits geöffnet


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob eine Datei bereits geöffnet ist, kannst Du den folgenden VBA-Code verwenden. Dieser Code wird in das Workbook_Open-Ereignis eingefügt, um beim Öffnen des Workbooks die Überprüfung durchzuführen:

Private Sub Workbook_Open()
    Dim x As Workbook
    Dim filePath As String
    filePath = "C:\Eigene Dateien\Test.xls"

    For Each x In Workbooks
        If x.Name = "Test.xls" Then
            MsgBox "Datei ist schon geöffnet!"
            Exit Sub
        End If
    Next x

    MsgBox "Test wird automatisch geöffnet!"
    Workbooks.Open FileName:=filePath
End Sub

Dieser Code überprüft, ob die Datei "Test.xls" geöffnet ist. Wenn nicht, wird sie geöffnet.


Häufige Fehler und Lösungen

  1. Fehler: "Datei nicht gefunden"

    • Lösung: Überprüfe den angegebenen Pfad. Stelle sicher, dass die Datei wirklich unter dem angegebenen Pfad vorhanden ist.
  2. Fehler: "Das Workbook ist bereits geöffnet"

    • Lösung: Achte darauf, dass der Name der Datei genau übereinstimmt, einschließlich der Dateiendung (.xls, .xlsx).
  3. Fehler: Probleme beim Öffnen mehrerer Dateien

    • Lösung: Verwende eine Schleife, um mehrere Dateien zu prüfen. Hier ein Beispiel:
For Each x In Workbooks
    If x.Name <> "aaa.xls" Then
        Workbooks.Open "aaa.xls"
    End If
    If x.Name <> "bbb.xls" Then
        Workbooks.Open "bbb.xls"
    End If
Next x

Alternative Methoden

Eine alternative Methode zur Prüfung, ob ein Workbook geöffnet ist, ist die Verwendung von Application.Workbooks. Hier ist ein Beispiel:

Dim wb As Workbook
On Error Resume Next
Set wb = Application.Workbooks("Test.xls")
On Error GoTo 0

If wb Is Nothing Then
    MsgBox "Workbook ist nicht geöffnet, öffne es jetzt."
    Workbooks.Open "C:\Eigene Dateien\Test.xls"
Else
    MsgBox "Workbook ist bereits geöffnet."
End If

Diese Methode ist nützlich, wenn Du eine spezifische Kontrolle über das Öffnen eines Workbooks benötigst.


Praktische Beispiele

Hier sind einige praktische Beispiele, die Dir helfen, den VBA-Code effektiv zu nutzen:

  1. Öffnen einer Datei, wenn sie nicht geöffnet ist:
Sub OpenWorkbookIfNotOpen()
    Dim fileName As String
    fileName = "C:\Eigene Dateien\Test.xls"

    If Not IsWorkbookOpen(fileName) Then
        Workbooks.Open fileName
    Else
        MsgBox "Die Datei ist bereits geöffnet."
    End If
End Sub

Function IsWorkbookOpen(fileName As String) As Boolean
    Dim wb As Workbook
    On Error Resume Next
    Set wb = Workbooks(fileName)
    IsWorkbookOpen = Not wb Is Nothing
    On Error GoTo 0
End Function
  1. Öffnen einer Datei mit variabler Dateinamen:
Sub OpenWorkbookWithVariableName()
    Dim filePath As String
    Dim currentDate As String
    currentDate = Format(Date, "yyyymmdd")
    filePath = "C:\Eigene Dateien\Test_" & currentDate & ".xls"

    If Not IsWorkbookOpen(filePath) Then
        Workbooks.Open filePath
    End If
End Sub

Tipps für Profis

  • Fehlerbehandlung: Nutze On Error Resume Next, um Fehler zu ignorieren, wenn Du versuchst, ein Workbook zu setzen. Vergiss nicht, am Ende mit On Error GoTo 0 wieder auf die Standardbehandlung zurückzusetzen.
  • Performance: Wenn Du mehrere Workbooks öffnest, denke daran, die Application.ScreenUpdating auf False zu setzen, um den Bildschirm nicht unnötig zu aktualisieren.
  • Sicherheit: Überprüfe, ob die Datei sicher ist, bevor Du sie öffnest, insbesondere wenn Du von einem Netzwerkpfad arbeitest.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Dateien gleichzeitig öffnen?
Du kannst eine Schleife verwenden, um durch die Dateinamen zu iterieren und jede Datei nacheinander zu öffnen, wie im obigen Beispiel gezeigt.

2. Was tun, wenn die Dateinamen variabel sind?
Verwende Variablen, um den Dateinamen dynamisch zu erstellen, z. B. basierend auf dem Datum oder anderen Kriterien.

3. Ist es möglich, eine Datei zu öffnen, ohne dass eine Fehlermeldung angezeigt wird?
Ja, Du kannst die Fehlerbehandlung in VBA verwenden, um zu verhindern, dass Fehler angezeigt werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige