Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1084to1088
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

WindowResize und Esc-Taste

WindowResize und Esc-Taste
Jörg
Hallo liebe Forumsmitglieder,
ich habe folgendes Problem und hoffe, jemand kann mir dabei helfen: Ich möchte beim Verändern der Größe des Arbeitsmappenfensters mittels Workbook_WindowResize auch das Anwendungsfenster in der Größe verändern. Wenn also das Mappenfenster minimiert wird, soll auch Excel minimiert werden. Gleichzeitig wird das Arb.-mappenfenster innerhalb des Excelfensters wieder maximiert dargestellt. Der folgende Code löst das auch ganz gut. Allerdings habe ich keine Möglichkeit gefunden, die Unterbrechnung mittels Esc zu unterbinden. Die Zeile "Application.EnableCancelKey = xlDisabled" hat keine Auswirkung. Weiß jemand Rat? Vielen Dank schon mal vorab. Hier der Code:

Private Sub Workbook_WindowResize(ByVal Wn As Excel.Window)
Application.EnableCancelKey = xlDisabled
If Wn.WindowState  xlMaximized Then
Select Case Wn.WindowState
Case xlNormal
ActiveWindow.WindowState = xlMaximized
Application.WindowState = xlNormal
Case Else
Application.WindowState = xlMinimized
ActiveWindow.WindowState = xlMaximized
End Select
End If
End Sub


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

Betreff
Benutzer
Anzeige
nicht ausgiebig gestetet
02.07.2009 10:23:41
Tino
Hallo,
du könntest mal versuchen die Tasten für kurze Zeit umzulegen.
Habe dies aber nicht ausgiebig gestetet!
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_WindowResize(ByVal Wn As Excel.Window) 
  Application.EnableEvents = False 
    BlockTaste True 
        If Wn.WindowState <> xlMaximized Then 
            Select Case Wn.WindowState 
                Case xlNormal 
                    ActiveWindow.WindowState = xlMaximized 
                    Application.WindowState = xlNormal 
                Case Else 
                    Application.WindowState = xlMinimized 
                    ActiveWindow.WindowState = xlMaximized 
            End Select 
        End If 
    BlockTaste False 
   Application.EnableEvents = True 
End Sub 
 
Private Sub BlockTaste(booAkt As Boolean) 
With Application 
    If booAkt Then 
     .OnKey "{ESC}", "tt" 
     .OnKey "%{F4}", "tt" 
     .EnableCancelKey = xlDisabled 
    Else 
     .OnKey "{ESC}", "" 
     .OnKey "%{F4}", "" 
     .EnableCancelKey = xlInterrupt 
    End If 
End With 
End Sub 


Gruß Tino

Anzeige
AW: nicht ausgiebig gestetet
02.07.2009 14:21:03
Jörg
Hallo Tino, vielen Dank für deine Antwort. Leider wird durch die Änderung das Problem nicht behoben. Scheint sich um einen Bug in Excel/VBA zu handeln (oder wir machen einen Gedankenfehler), denn diese Probleme mit EnableCancelKey = xlDisabled hatte ich noch nie.
Gruß
Jörg
daher habe ich noch .OnKey
02.07.2009 15:30:58
Tino
Hallo,
normalerweise würde eine Fehlermeldung kommen, dass dieses Makro tt nicht vorhanden ist, weil dies aber zur Laufzeit passiert o. geschieht kommt auch keine Meldung.
Also bei mir funktioniert es.
Aber ich denke ich weiß was bei dir abgeht.
Du drückst die ESC Taste bevor der Code ausgeführt wird.
Versuche mal und stelle mal im Ereignis Workbook_Activate und Workbook_Deactivate
die EnableCancelKey entsprechend ein.
Gruß Tino
Anzeige
AW: daher habe ich noch .OnKey
02.07.2009 18:12:24
Jörg
Hallo, so ganz klappt's immer noch nicht, aber du hast mich auf eine Idee gebracht. Mit Application.OnKey "{ESC}", "" in Workbook_Open() ist es immerhin schon mal direkt nach dem Öffnen der Datei so, wie ich es haben möchte. Ich werde heute abend noch ein bisschen experimentieren ... Erst mal vielen Dank an Dich!!
AW: daher habe ich noch .OnKey
03.07.2009 20:39:16
Jörg
Hallo Tino,
wow!!! Das sieht vielversprechend aus. Habe Application.Interactive = True mal eben auf die Schnelle eingebaut und kurz getestet (Excel dann über Task Manager beendet; war ja auch der allererste Versuch, werde natürlich noch ein "= false" einbauen). Aber ich denke, damit lässt sich eventuell was machen. Werd's am Wochenende mal genauer testen. Dir erstmal herzlichen Dank und ein schönes Wochenende. Ich werde ein Feedback geben.
Gruß. Jörg.
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige