Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

UF in Bildmitte Excel stürzt auf Mon2 ab

Forumthread: UF in Bildmitte Excel stürzt auf Mon2 ab

UF in Bildmitte Excel stürzt auf Mon2 ab
12.01.2022 10:21:22
Karl-Heinz
Hallo und einen schönen guten Morgen alle zusammen,
habe folgendes Problem: Ich arbeite mit zwei Monitoren am PC und habe eine xlsm-Datei mit Userforms.
Damit die beim öffnen nicht willkürlich irgendwo an den zwei Monitoren angezeigt werden -das finde ich sehr lästig-, habe ich diese mit unten stehendem Code, - den ich in diesem Forum gefunden habe -, in Bildmitte gebracht. Das funktioniert auch prima, allerdings nur wenn die Datei im linken Monitor 1 angezeigt und bearbeitet wird. Sobald ich die Datei von Monitor 1 auf Monitor 2 verschiebe und das entsprechende Makro starte, hängt sich die Datei auf und ich kann Excel nur noch über den TaskManager beenden. Ohne den untenstehenden Code funktioniert auch auf Monitor 2 alles prima.
Was kann man tun, um dies zu ändern? Schon mal vielen Dank für die Hilfe und viele Grüße Karl-Heinz

Private Sub UserForm_Initialize()
'Userform in Bildmitte bringen
Dim x As Long
Dim y As Long
Dim t As Long
Dim l As Long
Dim mx As Long ' Mitte Breite des Fensters
Dim my As Long ' Mitte Höhe des Fenster
Dim fx As Long ' linker Rand des Fensters
Dim fy As Long ' oberer Rand des Fensters
x = ActiveWindow.Width
y = ActiveWindow.Height
t = ActiveWindow.Top
l = ActiveWindow.Left
mx = CLng(x / 2) + t
my = CLng(y / 2) + l
' linker Rand der Userform, Offset
Me.Left = mx - CLng(Me.Width / 2)
' oberer Rand der Userform, Offset
Me.Top = my - CLng(Me.Height / 2)
End Sub
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UF in Bildmitte Excel stürzt auf Mon2 ab
12.01.2022 11:09:42
ChrisL
Hi Karl-Heinz
Ich habe den Code mal getestet, konnte aber in meiner Umgebung keinen "Hänger" provozieren, selbst wenn ich die Mappe zwischen zwei Bildschirmen positioniere oder mit 3 Bildschirmen unterschiedlicher Auflösung.
Gefühlsmässig gehe ich eher von einem "Grafikproblem" aus z.B. mal sicherstellen, dass die Grafiktreiber aktualisiert sind. Aber dies ist letztlich ein Tappen im Dunkeln und ich kann dich diesbezüglich nicht weiter unterstützen.
Was du auch mal noch machen könntest, wäre die Werte zu überprüfen.
msgbox mx - CLng(Me.Width / 2)
msgbox my - CLng(Me.Height / 2)
Die Werte die angezeigt werden mal notieren und dann manuell die Left/Top Eigenschaft mit diesen Werten füllen. Nur um sicher zu gehen, dass das Berechnungsergebnis gültigen Werten entspricht.
cu
Chris
Anzeige
AW: UF in Bildmitte Excel stürzt auf Mon2 ab
12.01.2022 11:20:58
Karl-Heinz
Hallo Chris,
vielen Dank für die schnelle Antwort. Es beruhigt mich erstmal, dass der Fehler an Deiner Arbeitsstation nicht auftritt.
Ich werde das jetzt auch nochmal an einer anderen Arbeitsstation ausprobieren. Und falls dort auch alles funktioniert, an meiner Station weiter nach dem Fehler suchen!
Jedenfalls vielen Dank für Deine Mühe und viele Grüße.
Karl-Heinz
Anzeige
AW: UF in Bildmitte Excel stürzt auf Mon2 ab
13.01.2022 19:22:52
Karl-Heinz
Hallo Chris
Rückmeldung:
Ich habe weiter experimentiert und herausbekommen, dass des Problem in diesem Teil des Codes hier liegt:
t = ActiveWindow.Top
l = ActiveWindow.Left
mx = CLng(x / 2) + t
my = CLng(y / 2) + l
damit hängt es sich auf
Lass ich wie nachstehend + t und + l weg kann ich die Datei problemlos auf Monitor 2 ziehen und die Userform dort öffnen..
mx = CLng(x / 2) '+ t
my = CLng(y / 2) '+ l
Wenn ich jetzt in Monitor 2 die Userform öffne, erscheint diese allerdings dann auf Monitor 1 in Bildmitte.
Damit könnte ich leben!
Falls allerdings jemand doch noch eine Idee hat, damit die Datei unabhängig vom Monitor in gleicher Weise die UF öffnet, hätte ich natürlich auch nichts dagegen und würde mich sehr freuen.
Viele Grüße
Karl-Heinz
Anzeige
AW: UF in Bildmitte Excel stürzt auf Mon2 ab
13.01.2022 19:40:39
ChrisL
Hi Karl-Heinz
Danke für die Rückmeldung. Bitte nicht vergessen, den Beitrag als offen zu markieren (ich bin gleich weg).
Schon mal gut, dass du das Problem eingrenzen konntest. Zwar komisch, dass es bei Width/Height keine Probleme gibt, bei Top/Left hingegen schon, aber ich glaube dir. :)
Die Folgefrage wäre, ob sich das Problem mittels Error-Handling umschiffen lässt oder ob bereits der Aufruf zum "Hänger" führt. Zu Testzwecken mal quick&dirty die markierte Zeile einfügen.

Private Sub UserForm_Initialize()
'Userform in Bildmitte bringen
Dim x As Long
Dim y As Long
Dim t As Long
Dim l As Long
Dim mx As Long ' Mitte Breite des Fensters
Dim my As Long ' Mitte Höhe des Fenster
Dim fx As Long ' linker Rand des Fensters
Dim fy As Long ' oberer Rand des Fensters
On Error Resume Next
x = ActiveWindow.Width
y = ActiveWindow.Height
t = ActiveWindow.Top
l = ActiveWindow.Left
mx = CLng(x / 2) + t
my = CLng(y / 2) + l
' linker Rand der Userform, Offset
Me.Left = mx - CLng(Me.Width / 2)
' oberer Rand der Userform, Offset
Me.Top = my - CLng(Me.Height / 2)
End Sub
cu
Chris
Anzeige
AW: UF in Bildmitte Excel stürzt auf Mon2 ab
16.01.2022 17:37:55
Karl-Heinz
Rückmeldung: Das Problem ist gelöst!
Diese Lösung habe ich in einer Facebook-Gruppe gefunden:

Private Sub UserForm_Initialize()
Me.StartUpPosition = 0
Me.Left = Application.Left + (0.5 * Application.Width) - (0.5 * Me.Width)
Me.Top = Application.Top + (0.5 * Application.Height) - (0.5 * Me.Height)
End Sub
Funktioniert einwandfrei! Jetzt ist alles so wie ich es will.
Viele Grüße Karl-Heinz
Anzeige
;

Forumthreads zu verwandten Themen

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