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

ActiveWindow Syntax

Forumthread: ActiveWindow Syntax

ActiveWindow Syntax
Jörg-HH
Hallo an Alle
- ich möchte prüfen, ob mehr als 1 Fenster derselben Datei offen sind - wie heißt das auf VBAnisch?
- ich habe mehrere Fenster derselben Datei offen - das aktive maximiert, die anderen minimiert. Nun möchte ich das aktive auch minimieren, dann ein weiteres öffnen, darin was machen, wieder schließen und dann das vorherige wieder maximieren. Das geht zwar, indem ich es wieder mit ActivWindow anspreche, weil es ja das letzte ist, das vorher aktiv war. Das ist aber fehleranfällig. Kann ich das Ding vor dem Minimieren irgendwie benennen, damit ich danach sagen kann "und jetzt bidde DAS Fenster wieder maximieren"?
Grüße - Jörg
Anzeige

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

Betreff
Benutzer
Anzeige
AW: ActiveWindow Syntax
26.05.2012 20:50:59
Matze,Matthias
Hallo Jörg-HH,
...verstehe echt nicht was gemeint ist, ich bin VBA Neuling, also bring mich da nicht durcheinander.
Ich Sehe das mal so, du hast Excel offen, dort sind mehere "Dateien=Workbooks" geöffnet.
Diese "Dateien" sind in gewissen Größen in der Ansicht dargestellt.
Windows("Beispiel_1Datei.xls").Activate ' (aktuell auf Maximized)
ActiveWindow.WindowState = xlMinimized
'wechsel in eine der Anderen Dateien
Windows("Beispiel_2Datei.xls").Activate
ActiveWindow.WindowState = xlNormal '(Voreingestellte Größe)
ActiveWindow.WindowState = xlMaximized ' (Vollansicht)
'Die Excel Instanz worin dieses Makro läuft (hoffe ich sage das so richtig)
Windows("Mappe1.xlsm").Activate
ActiveWindow.WindowState = xlMaximized
ActiveWindow.WindowState = xlNormal
Windows.Arrange ArrangeStyle:=xlHorizontal '(Beide Dateien 1+2 Horizontal anordnen)
All diese Sachen kann man mit dem Makrorecorder aufzeichnen, viel Spaß
Gruß Matze
Anzeige
?
26.05.2012 21:13:23
Jörg-HH
Hi Matthias
du schreibst:
Ich Sehe das mal so, du hast Excel offen, dort sind mehere "Dateien=Workbooks" geöffnet
ich hatte geschrieben:
ich habe mehrere Fenster derselben Datei offen
Eine Datei ist ein Workbook. Kannst du jetzt verstehen, warum du mich nicht verstehen kannst?
Abgesehen davon verwechselst du offenbar Excel-Datei mit Excel-Instanz - was als VBA-Neuling völlig normal ist. Wenn du einmal Excel öffnest (egal ob mit oder ohne Datei), dann ist das eine Instanz. Wenn du dann eine weitere xl-Datei öffnest, dann öffnest du sie innerhalb dieser Instanz. Das geht ganz automatisch. Wenn du -aus welchem Grund auch immer- eine weitere Instanz öffnen willst, muß du ein weiteres Mal auf das Excel-Symbol klicken. Dann öffnet sich ein weiteres und leeres Excel.
Grüße - Jörg
Anzeige
AW: ?
26.05.2012 21:25:12
Matze,Matthias
Hi Joerg,
so ist das Leben,...ich lerne immer wieder was dabei.
du könntest aber auch direkt ansprechen
Windows("Beispie Datei.xls").WindowState = xlMaximized
oder beim "öffnen" der Datei wenn du diese ansprichst
Private Sub Workbook_Open()
.WindowState = xlMaximized
End Sub
viele Wege führen nach Rom, hab mir zwischenzeitlich Sepp´s Lösung angesehn.
Sag ich nur : wieder was gelernt - Danke
Gruß Matze
Anzeige
AW: ActiveWindow Syntax
26.05.2012 20:52:40
Josef

Hallo Jörg,
Sub test()
  Dim objWindow As Window
  
  Set objWindow = ActiveWindow
  
  'dein Code
  
  With objWindow
    .Activate
    .WindowState = xlMaximized
  End With
  
End Sub



« Gruß Sepp »

Anzeige
alles klar - danke, Sepp oT
26.05.2012 21:14:38
Jörg-HH
..ach so - da war noch die erste Frage...
26.05.2012 21:32:02
Jörg-HH
...ich hab dazu nun dies geschrieben
With Workbooks("Mappe1")
MsgBox "es sind " & Windows.Count & "Fenster offen"
End With
bekomme aber immer ALLE offenen Fenster gemeldet, nicht nur die der genannten Mappe. Wie geht das denn einzuschränken?
Jörg
AW: ..ach so - da war noch die erste Frage...
26.05.2012 22:06:46
Josef

Hallo Jörg,
MsgBox Workbooks("Mappe1").Windows.Count


« Gruß Sepp »

Anzeige
ok - danke oT
26.05.2012 22:44:50
Jörg-HH
;
Anzeige

Infobox / Tutorial

ActiveWindow Syntax in Excel VBA


Schritt-für-Schritt-Anleitung

  1. Aktives Fenster ansprechen: Um das aktive Fenster in VBA zu verwenden, kannst du den Befehl ActiveWindow nutzen.

    Dim objWindow As Window
    Set objWindow = ActiveWindow
  2. Fensterzustand ändern: Um den Zustand des aktiven Fensters zu ändern, kannst du die WindowState-Eigenschaft verwenden.

    objWindow.WindowState = xlMinimized
  3. Wechseln zwischen Fenstern: Wenn du zwischen mehreren Fenstern derselben Datei wechseln möchtest, aktiviere das gewünschte Fenster mit:

    Windows("Beispiel_1Datei.xls").Activate
  4. Fenster maximieren: Um das Fenster zu maximieren, verwende:

    ActiveWindow.WindowState = xlMaximized

Häufige Fehler und Lösungen

  • Fehler beim Wechseln zwischen Fenstern: Wenn du versuchst, zwischen Fenstern zu wechseln und eine Fehlermeldung erhältst, stelle sicher, dass der Name der Datei korrekt ist. Ein Tippfehler kann dazu führen, dass das Fenster nicht gefunden wird.

  • Alle Fenster gezählt: Wenn du alle offenen Fenster anzeigst, anstatt nur die der aktuellen Datei, kannst du den Befehl anpassen:

    MsgBox Workbooks("Mappe1").Windows.Count

Alternative Methoden

  • Verwendung des Makrorecorders: Du kannst den Makrorecorder nutzen, um häufige Aktionen aufzuzeichnen. So erhältst du den VBA-Code automatisch, ohne tief in die Syntax eintauchen zu müssen.

  • Ereignisgesteuertes Maximieren: Um das Fenster beim Öffnen einer Datei direkt zu maximieren, kannst du folgendes verwenden:

    Private Sub Workbook_Open()
       ActiveWindow.WindowState = xlMaximized
    End Sub

Praktische Beispiele

  1. Fenster minimieren und maximieren:

    Sub FensterWechsel()
       Windows("Beispiel_1Datei.xls").Activate
       ActiveWindow.WindowState = xlMinimized
       Windows("Beispiel_2Datei.xls").Activate
       ActiveWindow.WindowState = xlMaximized
    End Sub
  2. Zählen der offenen Fenster einer Datei:

    Sub ZaehleFenster()
       MsgBox "Es sind " & Workbooks("Mappe1").Windows.Count & " Fenster offen."
    End Sub

Tipps für Profis

  • Verwende With-Anweisungen, um den Code übersichtlicher zu gestalten:

    With ActiveWindow
       .WindowState = xlMaximized
    End With
  • Halte deine Fenster gut organisiert, um Verwirrung zu vermeiden, besonders wenn du mit mehreren offenen Instanzen arbeitest.


FAQ: Häufige Fragen

1. Wie kann ich das aktive Fenster benennen, um es später wieder anzusprechen? Du kannst eine Variable nutzen, um das aktive Fenster zu speichern, bevor du es minimierst.

Dim meinFenster As Window
Set meinFenster = ActiveWindow
meinFenster.WindowState = xlMinimized

2. Warum funktioniert ActiveWindow.WindowState = xlMaximized nicht manchmal? Stelle sicher, dass das Fenster, das du maximieren möchtest, tatsächlich aktiv ist. Wenn es minimiert ist, kann es sein, dass es nicht ordnungsgemäß maximiert werden kann.

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