Ich möchte gerne meine Userform beim aufrufen immer im Vollbild bekommen, egal welche Auflösung auf dem Rechner eingestellt ist.
Dazu habe ich danke „google“ folgenden Code, den ich in der Userform eingetragen habe:
Option Explicit
Private Declare Function FindWindow Lib \_
"user32" Alias "FindWindowA" ( \_
ByVal lpClassName As String, \_
ByVal lpWindowName As String \_
) As Long
Private Declare Function SendMessage \_
Lib "user32" Alias "SendMessageA" ( \_
ByVal hwnd As Long, \_
ByVal wMsg As Long, \_
ByVal wParam As Long, \_
lParam As Any \_
) As Long
Private Const WM\_SYSCOMMAND = &H112
Private Const SC\_MAXIMIZE = &HF030&
Private Sub Max()
Static mlngForm As Long
Dim strTitel As String
If mlngForm = 0 Then
strTitel = Me.Caption
Me.Caption = "lhdsgterfsdt"
mlngForm = FindWindow(vbNullString, "lhdsgterfsdt")
Me.Caption = strTitel
End If
SendMessage mlngForm, WM\_SYSCOMMAND, SC\_MAXIMIZE, 0
End Sub
Private Sub UserForm\_Activate()
Max
End Sub
Private Sub User32\_Activate()
SW = 0
Label2.Width = 0
Call user32
End Sub
Die Userform ist lediglich so ein „Bitte warten - im Hintergrund werden Makros ausgeführt - Berechnungen und speichern läuft“ Fenster.
Also damit die Userform angezeigt wird und im Hintergrund die Makros ausgeführt werden können habe ich im code des Command Buttons folgendes geschrieben:
PB1.Show 0
Und das „ShowModal“ der Userform habe ich auf True gesetzt.
Also das funktioniert bis hierhin auch fast perfekt.
Das Problem ist nur, wenn ich nun über dem CommandButton2 die Userform starte, wird sie NICHT in vollbild geöffnet. Wenn ich jedoch hinter "PB1.Show die Null entferne, dann klappt es, aber dann werden im Hintergrund die Makros nicht ausgeführt, erst wenn man das Fenster über das „X“ schließt!..
Ich möchte gerne meine Userform beim aufrufen immer im
Vollbild bekommen, egal welche Auflösung auf dem Rechner
eingestellt ist.
Halo Kolri,
in das Modul des Blattes:
Option Explicit
Private Sub CommandButton1\_Click()
UserForm1.Show 0
End Sub
In das Modul der UF:
Option Explicit
Private Sub UserForm\_Initialize()
With Me
.Height = Application.Height
.Width = Application.Width
End With
End Sub
vielen Dank für Deine Hilfe. Hat super geklappt. Nun habe ich noch eine Frage, vielleicht nichts schwieriges für Dich
Und zwar. Wir benutzen 2 Bildschirme. Kann ich das so einstellen, dass die Userform immer auf dem Bildschirm gestartet wird, wo sich auch die Exceltabelle befindet? Weil ich habe manchmal das Problem, dass sich die Tabelle auf dem linken Monitor befindet und ich dann das Makro starte und dann meine Userform sich auf der rechten Seite öffnet. Wenn ich die Tabelle Rechts habe und die Userform starte, dann öffnet sich die Userform auch Rechts. Aber wie kann ich es so einstellen, dass sich die Userform immer auf dem Monitor öffnet, wo auch die Exceltabelle offen ist?
schön, danke. Natürlich geht das im Sinne deiner Anfrage schief wenn Excel vorher nicht als Vollbild Fenster vorhanden ist.
Also muß man das ggfs. noch im Code vorher einabuen.
Dort „userform08.zip“. Ich hab sie gar nicht getestet. Weiß aber daß die manchmal nicht klappt, liegt irgednwie an den Bildschirm Seitenverhältnissen, bei einer entsprechenden nachfrage sagte hajo:
„da es Bildschimauflösungen 4:3 und 1:9 gibt kann man nur in einer
Richtung das max. machen und ich habe mich für die Höh entschieden.
Ansonsten würde die Userform verzerrt werden.“
Und in XL 2007 soll es auch nicht klappen.
Man das aber alles relaxt sehen. Wenn man wie ich einen Einzelplatz PC hat oder im Netztwerk weiß der Nebenmann hat den gleichen Monitor, dann wird der Code auch bei ihm klappen wenn er bei dir klappt.
Willst du natürlich Code basteln der weltweit funktioniert bei allen möglichen Bildschirmgrößen, Auflösungen und was es da alles gibt, ggfs. noch mehrere Fenster gleichzeitig nebeneinander.
Oha. Nicht so einfach *find*
Und zwar. Wir benutzen 2 Bildschirme. Kann ich das so
einstellen, dass die Userform immer auf dem Bildschirm
gestartet wird, wo sich auch die Exceltabelle befindet?
k.A. Ich habe diese Konstellation nicht und weiß da gar nix.
Aber was komisch ist, heute klappt das alles wie es sein soll schon mit deinem Code, den du mir geschickt hattest. Gestern irgendwie hatte es nicht geklappt … hmm keine Ahnung.