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

Makroausfüh bei Größenänderung des Excel-Fensters

Forumthread: Makroausfüh bei Größenänderung des Excel-Fensters

Makroausfüh bei Größenänderung des Excel-Fensters
16.04.2006 21:11:01
Dieter
Hallo zusammen,
mit dem folgenden VBA-Code im EXCEL-Modul "DieseArbeitsmappe" wird der Zellbereich "A1:E15" im Arbeitsblatt "Tabelle1" optimal durch Zoomen ins Workbook-Fenster eingepasst, wenn man die Größe des Workbook-Fensters durch Ziehen (oder Minimieren/Maximieren) verändert. Dies wird durch das Event "WindowResize" ausgelöst.

Private Sub Workbook_WindowResize(ByVal Wn As Window)
If Tabelle1.CodeName = ActiveSheet.CodeName Then
Range("A1:E15").Select
ActiveWindow.Zoom = True
Range("A1").Select
End If
End Sub

Das Event "WindowResize" funktioniert aber nur bei Größenänderung des Workbook-Fensters innerhalb des Fensters der Excel-Application.
Ist das "innere" Workbook-Fenster maximiert und man verändert die Größe des "äußeren" Fensters von Excel, dann wird das Makro nicht ausgeführt. Aber genau das möchte ich erreichen.
Kennt jemand einen Weg?
Gruß
Dieter
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Makroausfüh bei Größenänderung des Excel-Fensters
16.04.2006 21:25:52
Nepumuk
Hallo Dieter,
einfach mit Hilfe eines Timers die Fenstergröße (Application.Width / Application.Height) abfragen.
Gruß
Nepumuk

AW: Makroausfüh bei Größenänderung des Excel-Fens
17.04.2006 11:49:18
Dieter
Hallo Nepumuk,
erst einmal vielen Dank für die superschnelle Antwort!
Die Idee, die Fenstergröße über die beiden Application Eigenschaften abzufragen finde prinzipiell gut, aber: wann soll ich den Timer "einschalten"?
Manuell über einen Button ist keine akzeptable Lösung.
Wenn ich beipielsweise den Timer über das Ereignis "Worksheet_Activate" (z.B. mit Hilfe der Methode "Apllication.Ontime") im Modul "Tabelle1" einschalte und über "Worksheet_Activate" wieder ausschalte, dann "stört" die Laufzeit des Timers das Ausführen von anderen Makros, die ablaufen sollen, während Tabelle1 aktiviert ist.
Suche also weiterhin ein passendes Ereignis, um das Zoom-Makro (oder den Timer) anzustoßen.
Gruß
Dieter
Anzeige
AW: Makroausfüh bei Größenänderung des Excel-Fens
17.04.2006 11:56:25
Nepumuk
Hallo Dieter,
was soll denn im Zoom-Makro passieren? Die OnTime-Methode stört den Ablauf eines anderen Makros keineswegs. So lange dieses läuft, wartet der Timer.
Gruß
Nepumuk

AW: Makroausfüh bei Größenänderung des Excel-Fens
17.04.2006 16:44:21
Dieter
Hallo Nepumuk,
im Prinzip läuft jetzt alles bestens; Codes siehe unten.
Du hast recht, der Timer stört eindeutig NICHT die Laufzeit anderer Makros. Hatte eine Fehlermeldung, die - wie ich eben feststellte - eine andere Ursache hatte.
Das Einzige, was mich noch stört, ist das kurze Aufblinken des Cursors während der Laufzeit im Sekundentakt. Dies habe ich auch nicht mit
"Application.ScreenUpdating = False" bzw. "Application.EnableEvents = False" wegbekommen.
Kann man das irgendwie anders abstellen?
Weiterhin lässt sich das Makro nicht mehr den Entwurfsmodus schalten, wenn man das enpsprechende Icon in Excel anklickt.
Gruß und herzlichen Dank!
Dieter
ClassModul: Tabelle1
Option Explicit
Dim WidthAlt, HeightAlt

Private Sub Worksheet_Activate()
WidthAlt = Application.Width
HeightAlt = Application.Height
Call TimerStart
End Sub


Private Sub TimerStart()
'    Application.ScreenUpdating = False
'    Application.EnableEvents = False
If (Application.Width <> WidthAlt) Or (Application.Height <> HeightAlt) Then
Range("A1:E15").Select
ActiveWindow.Zoom = True
Range("A1").Select
End If
Application.OnTime Now + TimeValue("00:00:01"), "Tabelle1.TimerStart", , True
WidthAlt = Application.Width
HeightAlt = Application.Height
'    Application.EnableEvents = True
'    Application.ScreenUpdating = True
End Sub


Private Sub Worksheet_Deactivate()
Call TimerStop
End Sub


Private Sub TimerStop()
Application.OnTime Now + TimeValue("00:00:01"), "Tabelle1.TimerStart", , False
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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