08.02.2023, 10:03
Hallo wertes Forum,
ich habe da ein Problem mit einer Datei mit mehreren Fenstern.
Wie bekomme ich per VBA alle Fenster bis auf das letzte des aktiven Workbooks geschlossen?
In der Datei wurde evtl. beim vorherigen Bearbeiten per Code "ActiveWindow.NewWindow" ein neues Fenster erzeugt. Beim Speichern wurde folglich das zweite Fenster mit gespeichert.
Jetzt soll dieses zweite Fenster beim erneuten Öffnen der Datei geschlossen werden (oder auch beim Aktivieren eines anderen Blattes des Workbooks).
Ich habe eine Testdatei mit meinem kläglichen Code angehängt.
Ich bekomme in der Zeile Debug.Print... den Laufzeitfehler 438 ("Objekt unterstützt diese Eigenschaft oder Methode nicht"
In der Originaldatei werden per Doppelklick aus einer Liste Daten gefiltert und diese als zweites kleineres Fenster vor dem Originalfenster dargestellt.
Dieses wird durch den User manchmal nicht geschlossen, sondern durch Klick auf das Originalfenster in den Hintergrund geschoben. Oder kann ich da per Code das zweite Fenster bereits schließen sobald es deaktiviert wird?
Vielen Dank für Eure Hilfe,
Lutz
ich habe da ein Problem mit einer Datei mit mehreren Fenstern.
Wie bekomme ich per VBA alle Fenster bis auf das letzte des aktiven Workbooks geschlossen?
In der Datei wurde evtl. beim vorherigen Bearbeiten per Code "ActiveWindow.NewWindow" ein neues Fenster erzeugt. Beim Speichern wurde folglich das zweite Fenster mit gespeichert.
Jetzt soll dieses zweite Fenster beim erneuten Öffnen der Datei geschlossen werden (oder auch beim Aktivieren eines anderen Blattes des Workbooks).
Ich habe eine Testdatei mit meinem kläglichen Code angehängt.
Code:
Sub Makro1()
Dim Fenster As Object
For Each Fenster In Application.Windows
Debug.Print Fenster.Name
If IsNumeric(Right(Fenster.Name, 1)) Then
Fenster.Close
End If
Next Fenster
End Sub
In der Originaldatei werden per Doppelklick aus einer Liste Daten gefiltert und diese als zweites kleineres Fenster vor dem Originalfenster dargestellt.
Code:
Set Anzeige = ThisWorkbook.Worksheets("Anzeige")
ActiveWindow.NewWindow
Anzeige.Visible = True
Anzeige.Activate
ActiveWindow.WindowState = xlNormal
With ActiveWindow
.Top = 100
.Left = 200
.Width = 937.5
.Height = 608.25
End With
Vielen Dank für Eure Hilfe,
Lutz