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

Workbooks.Activate / ActiveWorkbook

Forumthread: Workbooks.Activate / ActiveWorkbook

Workbooks.Activate / ActiveWorkbook
05.02.2019 17:25:34
Sascha
Hallo, ich hab ein Problem was nun bei Excel 2016 auftritt (auf Excel 2010 nicht gesehen).
Ich habe mehrere Workbooks geöffnet, lasse sie mir die Namen alle per vba-skript anzeigen (sind also auffindbar).
Ich möchte ein spezielles Workbook aktivieren:
Workbooks("test.xlsx").Activate
Kein Fehler/Hinweis, scheint also grundsätzlich zu gehen, da sonst ja Index-Fehler kommen würde.
Direkt danach will ich mir eben das aktive Workbook anzeigen lassen:
MsgBox ActiveWorkbook.Name
Das Ergebnis ist aber leider immer noch das StartWorkbook als aktives Workbook. Wie kann denn sowas sein?
Danke
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Workbooks.Activate / ActiveWorkbook
05.02.2019 17:46:06
onur
Keine Ahnung, bei mir (auch 2016) zeigt die MsgBox das richtige Workbook an.
Du bist sicher, dass dass Makro im StartWorkbook ist?
AW: Workbooks.Activate / ActiveWorkbook
06.02.2019 09:59:34
Sascha
Hallo,
das Ganze passiert natürlich nicht in einem kleinen Makro, welches nur diese Einträge enthält. Ich habe aber hier ein sehr aufgedunsenes Skript, aufgerufen tatsächlich in einem anderen Workbook welches über Userform gesteuert wird und neue Workbooks generiert.
Das beschriebene Problem zeigt nur die komprimierte Version und ist nur ein Bestandteil der Suche, warum das Skript plötzlich nicht mehr funktioniert.
Ich würde halt erwarten, dass er - egal was drum herum ist, aber gegeben er kennt die Workbooks alle - mit
Workbooks(a).Activate ActiveWorkbook auch a ist.
Anzeige
AW: Workbooks.Activate / ActiveWorkbook
06.02.2019 12:36:55
onur
Ohne deinen Code zu sehen, kann man nur herumraten.
Aber warum musst du das Workbook überhaupt aktivieren?
AW: Workbooks.Activate / ActiveWorkbook
06.02.2019 10:50:12
Daniel
Vielleicht "verschluckt" Excel sich nur an dem Punkt? Ist mir jedenfalls schon mal untergekommen, dass er solche Sachen nicht richtig ausgeführt hat, offensichtlich weil er an einem Punkt zu schnell war. Versuch mal vor oder nach dem Activate ein DoEvents einzufügen.
Gruß
Daniel
Anzeige
AW: Workbooks.Activate / ActiveWorkbook
07.02.2019 11:03:10
Sascha
Hallo,
das habe ich probiert, hat aber nichts geändert.
@onur: ich muss aus dieser Mappe ein einzelnes Sheet extrahieren und bekomme es eben nicht mehr gegriffen.
AW: Workbooks.Activate / ActiveWorkbook
08.02.2019 16:56:23
Oberschlumpf
Hi Sascha,
mit...
With Workbooks("DeineBestimmteDatei").Sheets("DeineBestimmteTabelle")
.hier machen, was passieren soll
.z Bsp Copy usw
.und noch mehr machen
.oder auch nicht
.oder wie halt auch immer
End With
...muss doch DeineBestimmteDatei mit DeineBestimmteTabelle gar nicht aktiviert werden.
(hilfts?)
Und wenn du schreibst...
"ja, mit so nem kleinen Code gibt es das Problem nicht. Aber ich habe ein riesen Script..."
...dann liegt das Problem wohl in deinem Script.
Wo? Wissen wir nicht. Wir kennen dein Script ja nicht.
Ciao
Thorsten
Anzeige
AW: Workbooks.Activate / ActiveWorkbook
08.02.2019 20:52:13
Sascha
Hallo,
ich habe mittlerweile mehrfach gelesen, dass seit Office2016 tatsächlich Bugs (auch von Microsoft bestätigt) auftreten in Kombi mit Userforms. Das tröstet aber nicht wirklich...
Natürlich muss normalerweise nichts aktiviert werden, aber ich habe versucht das Problem (den Wert aus einem bestimmten Sheet einer bestimmten Mappe nicht mehr greifen zu können) zu lokalisieren und m.M. sollte es ziemlich egal sein, was um meine 3 Zeilen Code passiert. Ich aktiviere etwas und frage direkt danach wieder was aktiviert ist und bekomme ein anderes Ergebnis.
Ich werde weiter testen und suchen.
Danke
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Workbooks aktivieren in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Workbook aktivieren: Um ein bestimmtes Workbook zu aktivieren, verwende den folgenden Code:

    Workbooks("test.xlsx").Activate
  2. Aktives Workbook anzeigen: Um den Namen des aktiven Workbooks anzuzeigen, füge den folgenden Code hinzu:

    MsgBox ActiveWorkbook.Name
  3. Fehlerbehebung: Falls das aktive Workbook nicht korrekt angezeigt wird, stelle sicher, dass das Makro im richtigen Workbook ausgeführt wird. Wenn du das Workbook von einem Userform aus steuerst, kann es zu Problemen kommen.


Häufige Fehler und Lösungen

  • Problem: Das aktive Workbook bleibt das StartWorkbook, auch nachdem ein anderes Workbook aktiviert wurde.

    • Lösung: Überprüfe, ob das Makro im richtigen Workbook ausgeführt wird. Es könnte sein, dass dein Skript zu komplex ist und Excel Schwierigkeiten hat, die Befehle richtig auszuführen.
  • Problem: Excel reagiert nicht wie erwartet (z.B. MsgBox zeigt falsches Workbook an).

    • Lösung: Füge DoEvents vor oder nach dem Activate-Befehl ein, um Excel Zeit zu geben, den Befehl auszuführen.

Alternative Methoden

Anstelle des direkten Aktivierens eines Workbooks, kannst du den Code innerhalb eines With-Blocks verwenden:

With Workbooks("DeineBestimmteDatei").Sheets("DeineBestimmteTabelle")
    ' Hier die gewünschten Aktionen ausführen
End With

Diese Methode benötigt keine Aktivierung des Workbooks und kann effizienter sein.


Praktische Beispiele

Beispiel 1: Workbook aktivieren und Wert auslesen

Sub BeispielAktivieren()
    Workbooks("test.xlsx").Activate
    MsgBox ActiveWorkbook.Name
End Sub

Beispiel 2: Wert aus einem spezifischen Sheet extrahieren

Sub WertAusSheetExtrahieren()
    Dim wb As Workbook
    Set wb = Workbooks("DeineBestimmteDatei")

    MsgBox wb.Sheets("DeineBestimmteTabelle").Range("A1").Value
End Sub

Tipps für Profis

  • Verwende Set für die Zuweisung von Workbooks, um die Lesbarkeit des Codes zu erhöhen.

    Dim wb As Workbook
    Set wb = Workbooks("test.xlsx")
  • Reduziere die Anzahl der Activate-Befehle in deinem Code, um die Ausführung zu beschleunigen.

  • Wenn du oft mit mehreren Workbooks arbeitest, halte deine Code-Struktur sauber und gut kommentiert, um die Übersichtlichkeit zu gewährleisten.


FAQ: Häufige Fragen

1. Warum wird mein Workbook nicht aktiviert? Stelle sicher, dass der Name des Workbooks korrekt ist und dass das Skript im richtigen Kontext ausgeführt wird.

2. Was kann ich tun, wenn ActiveWorkbook nicht das erwartete Ergebnis liefert? Überprüfe, ob das Skript in einem Userform oder einer anderen Umgebung ausgeführt wird, da dies die Aktivierung beeinflussen kann. Füge eventuell DoEvents ein, um den Befehl zu verzögern.

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