Userform in Vollbild

Hallo Zusammen, habe folgendes Problem:

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 hoffe ihr habt meine Frage verstanden :wink:

Kann mir jemand helfen?

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

Gruß
Reinhard

HI Reinhard,

vielen Dank für Deine Hilfe. Hat super geklappt. Nun habe ich noch eine Frage, vielleicht nichts schwieriges für Dich :wink:

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?

Hast du dazu auch eine Idee?

Hallo Kolri,

vielen Dank für Deine Hilfe. Hat super geklappt.

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.

Oder alternativ dies hier von hajos webseite:

http://www.hajo-excel.de/fremd_userform.htm

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.

Gruß
Reinhard

Super ich danke Dir auch für den Link.

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.

Aber das wichtigste ist - Alles läuft wie es soll :smile:

Danke nochmals