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

Forumthread: geöffneter Excel.Workbook an Variable zuweisen

geöffneter Excel.Workbook an Variable zuweisen
Peter
Guten Tag
Mit untenstehendem Code überprüfe ich , ob die Datei abc.xls offen ist, wenn nicht wird sie geöffnet und und der Excel.Workbook - Variable wbEA_Aktuell zugewiesen.
Wie kann ich die die gleiche Zuweisung machen, wenn die Datei abc.xls bereits geöffnet und möglicherweise ausgeblendet ist - ohne diese einzublenden, resp. zu aktivieren?
Gruss, Peter

Sub DatenEintragen()
If IsWorkbookOpen("abc.xls") = 0 Then
Workbooks.Open strFullNameAEA1
Set wbEA_Aktuell = ActiveWorkbook
ThisWorkbook.Activate
bolOpen1 = 0
Else
End If
End Sub


Function IsWorkbookOpen(strWB As String) As Boolean
On Error Resume Next
IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function

Anzeige

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

Betreff
Benutzer
Anzeige
AW: geöffneter Excel.Workbook an Variable zuweisen
16.09.2011 16:20:43
Daniel
Hi
machs doch so (vom Prinzip her):

on error resume Next
Set wbDatei = Workbooks("Dateiname.xls")
On Error Goto 0
if wbDatei is Nothing then Set wbDatei = Workbooks.Open("Pfad\Dateiname.xls")

ob ein- oder ausgeblendet spielt hierbei keine rolle.
gruß, daniel
Anzeige
AW: geöffneter Excel.Workbook an Variable zuweisen
16.09.2011 16:43:25
Peter
Hallo Daniel
Danke für die Antwort.
Mit Set wbDatei = Workbooks.Open("Pfad\Dateiname.xls") will mir jedoch Excel das File nochmals öffnen, es ist jedoch schon offen und soll nur noch der Variable zugewiesen werden.
Dann noch eine Anschlussfrage zu Ein-/Ausblenden des ganzen Workbooks (nicht nur eines Sheets). Mit
wbDatei.Visible = False geht das nicht. Wie muss der Code lauten?
Vielen Dank für die Hilfe.
Gruss, Peter
Anzeige
AW: geöffneter Excel.Workbook an Variable zuweisen
16.09.2011 17:16:29
Daniel
Hi
dann verwendest du wahrscheinlich verschiedene Variablen (Tippfehler?).
wenn die Datei offen ist, dann wird die schon bei "Set wbDatei = Workbooks("Dateiname.xls")" der Variablen zugewiesen.
Das Öffnen sollte nur geschehen, wenn der Variablen wbDatei noch keine Mappe zugwiesen wurde, dafür sorgt die Prüfung "If wbDatei is Nothing then ...."
kleine Frage am Rande: Arbeitest du mit Option Explicit?
um eine ganze Datei auszublenden, musst du das entsprechende Fenster unsichtbar machen:

Windows("Dateiname.xls").visible = false

Gruß, Daniel
Anzeige
AW: geöffneter Excel.Workbook an Variable zuweisen
16.09.2011 17:37:41
Peter
Hallo Daniel
Jetzt ist es klar. Bei mir steht der Dateiname in einer benannten Zelle und mir fehlte im Code die Ergänzung ".Value"
Set wbEA_Aktuell = Workbooks(Range("ANAVEA").Value)
Jetzt funktionierts. Option Explicit ist bei mir fester Bestandteil.
Vielen Dank und Gruss, Peter
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Excel.Workbook an Variable zuweisen


Schritt-für-Schritt-Anleitung

Um ein geöffnetes Excel.Workbook einer Variablen zuzuweisen, kannst Du den folgenden VBA-Code verwenden. Dieser überprüft, ob die Datei bereits geöffnet ist und weist sie der Variablen wbEA_Aktuell zu, ohne sie erneut zu öffnen.

Sub DatenEintragen()
    Dim wbEA_Aktuell As Workbook
    If IsWorkbookOpen("abc.xls") = False Then
        Set wbEA_Aktuell = Workbooks.Open("Pfad\abc.xls")
    Else
        Set wbEA_Aktuell = Workbooks("abc.xls")
    End If
End Sub

Function IsWorkbookOpen(strWB As String) As Boolean
    On Error Resume Next
    IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function

Beachte, dass die Funktion IsWorkbookOpen überprüft, ob das Workbook bereits geöffnet ist. Wenn das Workbook offen ist, wird es der Variablen zugewiesen, andernfalls wird es geöffnet.


Häufige Fehler und Lösungen

  1. Workbook wird erneut geöffnet

    • Problem: Die Datei wird geöffnet, obwohl sie bereits offen ist.
    • Lösung: Stelle sicher, dass Du die Prüfung If IsWorkbookOpen(...) korrekt implementiert hast, um die Variable nur dann zu setzen, wenn die Datei nicht offen ist.
  2. Variable bleibt leer

    • Problem: Die Variable wbEA_Aktuell bleibt Nothing.
    • Lösung: Überprüfe, ob der Dateiname und der Pfad korrekt sind und dass die Datei tatsächlich geöffnet ist.

Alternative Methoden

Eine alternative Methode besteht darin, die On Error Resume Next-Anweisung zu verwenden, um zu verhindern, dass ein Fehler auftritt, wenn das Workbook nicht gefunden wird:

Dim wbDatei As Workbook
On Error Resume Next
Set wbDatei = Workbooks("Dateiname.xls")
On Error GoTo 0
If wbDatei Is Nothing Then
    Set wbDatei = Workbooks.Open("Pfad\Dateiname.xls")
End If

Diese Methode ermöglicht es, die Variable wbDatei sowohl für ein offenes als auch für ein geschlossenes Workbook zu verwenden.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die Workbook-Variablen in Deinem Code verwenden kannst:

  1. Zuweisung ohne Öffnen

    Dim wbEA_Aktuell As Workbook
    If IsWorkbookOpen("abc.xls") Then
       Set wbEA_Aktuell = Workbooks("abc.xls")
    End If
  2. Ausblenden eines Workbooks

    Windows("abc.xls").Visible = False

Tipps für Profis

  • Option Explicit: Stelle sicher, dass Du Option Explicit am Anfang Deines Moduls verwendest. Dies zwingt Dich, alle Variablen zu deklarieren, wodurch Tippfehler vermieden werden.
  • Fehlerbehandlung: Nutze On Error-Anweisungen effektiv, um unerwartete Fehler zu vermeiden und den Code stabiler zu machen.
  • Namen der Workbooks: Verwende immer die korrekten Namen der Workbooks, um Verwirrung zu vermeiden. Du kannst auch Workbook.name verwenden, um den Namen eines Workbooks abzufragen.

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob ein Workbook geöffnet ist? Verwende die Funktion IsWorkbookOpen, um zu prüfen, ob das Workbook bereits geöffnet ist.

2. Wie kann ich ein Workbook unsichtbar machen? Verwende den Befehl Windows("Dateiname.xls").Visible = False, um das gesamte Workbook auszublenden.

3. Was passiert, wenn ich den falschen Dateinamen verwende? Wenn der Dateiname falsch ist, wird die Variable Nothing bleiben, und Du musst sicherstellen, dass Du den richtigen Namen verwendest.

4. Kann ich eine Workbook-Variable in einer anderen Sub verwenden? Ja, Du kannst eine Workbook-Variable als Global-Variable deklarieren, um sie in mehreren Subs zu verwenden.

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