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

Forumthread: Per VBA eine geöffnete Datei aktivieren

Per VBA eine geöffnete Datei aktivieren
20.08.2008 09:08:35
urs
Guten Morgen allerseits
ich habe mehrere Dateien offen und möchte nun innerhalb eines Macros die bestimmte "NOOP-SAP.xls" aktivieren.
For Each myWorkbook In Workbooks
If myWorkbook.Name = "NOOP-SAP.xls" Then bolgeoeffnet = True: ActiveWindow = "NOOP-SAP.xls"
Next .......
Den fett markierten Befehl muss ich irgendwie ersetzen. Ich weiss nur nicht, wie die Syntax lautet.
Kann mir da jemand einen Krückstock reichen?
Besten Dank schon mal Urs

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Workbooks("NOOP-SAP.xls").Activate (owT)
20.08.2008 09:23:20
Erich

AW: Workbooks("NOOP-SAP.xls").Activate (owT)
20.08.2008 10:14:00
urs
Hallo Erich
vielen Dank für Deine Bemühung. Ich habe Deinen Vorschlag direkt hinein kopiert und die Syntax lautet nun:
For Each myWorkbook In Workbooks
If myWorkbook.Name = "NOOP-SAP.xls" Then bolgeoeffnet = True: Workbooks("NOOP-SAP.xls").Activate (owT)
Next
If Not bolgeoeffnet Then Workbooks.Open "R:\1_Intern\Ursprung\NOOP-SAP.xls", False, False
ActiveWindow.Visible = True
Excel bringt dann diese Meldung:
Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft
und markiert: .Activate
Muss ich noch was definieren? Und wofür steht (owT)?
Gruss urs

Anzeige
AW: Workbooks("NOOP-SAP.xls").Activate (owT)
20.08.2008 10:21:00
Daniel
Hi
owt heißt "ohne weiteren Text" und bedeutet, daß alle wichtigen Informationen bereits in der Überschrift des Beitrags enthalten sind daher das normale Beitragstextfeld leer ist.
(owt) ist also nicht bestandteil des VBA-Codes.
Gruß, Daniel

AW: Workbooks("NOOP-SAP.xls").Activate (owT)
20.08.2008 10:33:00
urs
Hallo Daniel
Vielen Dank Du hast mir ganz einfach geholfen. Es funktioniert.
Nochmals an alle Beteiligten : Vielen Dank
Gruss Urs

Anzeige
AW: Per VBA eine geöffnete Datei aktivieren
20.08.2008 09:54:55
Hajo_Zi
Hallo Urs,
in VBA ist zu 99,9% select usw. nicht notwendig. Der Cursor ist kein Hund der überall rumgeführt werden musss.

AW: Per VBA eine geöffnete Datei aktivieren
20.08.2008 10:29:16
urs
Grüetzi Hajo
Die Erkenntnis hat mir noch gefehlt, denn wir haben zuhause nur zwei Katzen, die ich nicht ausführen muss. :-)
Die Makros stehen in einem Arbeitsblatt bei dem ich durch Antippen verschiedener Zellen weitere Ansichten von Dokumenten aktiviere.
Bei ersten Anklicken öffnet das Dokument, bei den nachfolgenden Klicks soll es nur noch aktiviert, d.h. für mich sichtbar gemacht werden. Für den ganzen Arbeitsablauf springe ich so zwischen 5 Dateien mit bis zu 12 Registern hin und her.
Vielleicht lösst Du solche Probleme auf eine andere Art. Bin offen für Tipps.
Gruss urs
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

Geöffnete Excel-Datei per VBA aktivieren


Schritt-für-Schritt-Anleitung

Um eine geöffnete Excel-Datei per VBA zu aktivieren, kannst Du den folgenden Code verwenden:

Dim bolgeoeffnet As Boolean
bolgeoeffnet = False

For Each myWorkbook In Workbooks
    If myWorkbook.Name = "NOOP-SAP.xls" Then
        bolgeoeffnet = True
        Workbooks("NOOP-SAP.xls").Activate
    End If
Next

If Not bolgeoeffnet Then
    Workbooks.Open "R:\1_Intern\Ursprung\NOOP-SAP.xls", False, False
End If

In diesem Code wird die Arbeitsmappe "NOOP-SAP.xls" durchlaufen und aktiviert, wenn sie bereits geöffnet ist. Ist sie nicht geöffnet, wird sie von einem angegebenen Pfad geöffnet.


Häufige Fehler und Lösungen

Ein häufiger Fehler, auf den Du stoßen kannst, ist die Fehlermeldung:

Falsche Anzahl an Argumenten oder ungültige Zuweisung zu einer Eigenschaft

Diese tritt auf, wenn Du versuchst, die .Activate-Methode mit falschen Argumenten zu verwenden. Stelle sicher, dass Du die Methode ohne zusätzliche Parameter aufrufst:

Workbooks("NOOP-SAP.xls").Activate

Der (owT) Teil ist kein Bestandteil des VBA-Codes und kann weggelassen werden, da es sich um eine Abkürzung handelt, die in Foren verwendet wird.


Alternative Methoden

Es gibt verschiedene Möglichkeiten, um eine Excel-Datei zu aktivieren:

  1. Verwendung der Select-Methode: Diese ist in der Regel nicht notwendig, aber falls Du sie verwenden möchtest, sieht der Code so aus:

    Workbooks("NOOP-SAP.xls").Select

    Beachte, dass die Verwendung von Select in VBA oft zu ineffizientem Code führt.

  2. Direktes Öffnen: Wenn Du sicher bist, dass die Datei nicht geöffnet ist, kannst Du sie direkt mit folgendem Code öffnen:

    Workbooks.Open "R:\1_Intern\Ursprung\NOOP-SAP.xls"

Praktische Beispiele

Ein praktisches Beispiel könnte sein, dass Du zwischen mehreren Excel-Dateien hin und her wechselst. Hier ein Beispiel, wie Du das effizient umsetzen kannst:

Sub WechselnZuNOOP()
    Dim bolgeoeffnet As Boolean
    bolgeoeffnet = False

    For Each myWorkbook In Workbooks
        If myWorkbook.Name = "NOOP-SAP.xls" Then
            bolgeoeffnet = True
            Workbooks("NOOP-SAP.xls").Activate
            Exit For
        End If
    Next

    If Not bolgeoeffnet Then
        MsgBox "Die Datei NOOP-SAP.xls ist nicht geöffnet."
    End If
End Sub

Dieses Makro aktiviert die Datei, wenn sie geöffnet ist, und zeigt eine Meldung an, wenn sie nicht geöffnet ist.


Tipps für Profis

  • Vermeide Select und Activate: Diese Methoden können Deinen Code langsamer machen. Stattdessen solltest Du direkt mit Objekten arbeiten.
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um unerwartete Fehler zu vermeiden. Zum Beispiel:

    On Error Resume Next
    Workbooks("NOOP-SAP.xls").Activate
    If Err.Number <> 0 Then
      MsgBox "Fehler beim Aktivieren der Datei."
      Err.Clear
    End If

FAQ: Häufige Fragen

1. Wie kann ich überprüfen, ob eine Datei geöffnet ist?
Du kannst eine Schleife verwenden, um alle geöffneten Arbeitsmappen zu durchlaufen und deren Namen zu überprüfen.

2. Was bedeutet (owT) im VBA-Code?
(owT) steht für "ohne weiteren Text" und ist keine gültige VBA-Syntax. Du kannst es einfach ignorieren.

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