Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1872to1876
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

Userform Probleme

Userform Probleme
04.03.2022 12:47:17
Walter
Guten Tag zusammen,
ich habe für meine Freundin eine Userform auf meinem Laptop erstellt.
Auflösung: 3840 X 2160
Laptop Freundin Auflösung: 1366 X 768
beides HP Rechner.
Wenn ich bei mir die Userform öffne, wird die UF größer angezeigt, drücke ich auf
den SpinButton dann wird die UF Darstellung kleiner angezeigt also alles gut sichtbar.
Bei der Auflösung: 1366 X 768 ist es umgekehrt, die UF alles gut sichtbar, bei klick auf
SpinButton alles größer dargestellt.
Warum ?
Hier das Makro dazu:
Private Sub UserForm_Initialize()
Dim lngY As Long
Dim lngrow As Long
Dim ze As String
'--------------- für Bildschirmanpassung --------------------------------------
Dim hwndForm As Long, hwndMenu As Long
Dim intY, intLast, intNext As Integer
'------------------------------------------------------------------------------
On Error Resume Next
Dim Faktor As Single
Dim X As Single, Y As Single
Dim sngL As Single, sngO As Single, sngR As Single, sngU As Single
Dim oC As MSForms.Control
Faktor = Application.Height / (Me.Height - 20)
If Faktor < 0.1 Then Faktor = 0.1
If Faktor > 4 Then Faktor = 4
Me.Width = Application.Width
Me.Height = Application.Height
sngL = Me.Width
sngO = Me.Height
For Each oC In Me.Controls
sngL = Application.WorksheetFunction.Min(sngL, oC.Left)
sngO = Application.WorksheetFunction.Min(sngO, oC.Top)
sngR = Application.WorksheetFunction.Max(sngR, oC.Left + oC.Width)
sngU = Application.WorksheetFunction.Max(sngU, oC.Top + oC.Height)
Next oC
X = (Me.Width - (sngR * Faktor) - (sngL * Faktor)) / 2 / Faktor
Y = (Me.Height - (sngO * Faktor) - (sngU * Faktor) - 20) / 2 / Faktor
Me.Controls.Move X, Y
Me.Zoom = Faktor * 100
hwndForm = FindWindow(vbNullString, Me.Caption) 'damit verankert
'------------ ab hier festgelegt, UF kann nicht verschoben werden ----------------
If hwndForm <> 0 Then
hwndMenu = GetSystemMenu(hwndForm, 0)
If hwndMenu <> 0 Then DeleteMenu hwndMenu, &HF010, &H0
End If
'-------------------------------------------------------------------------
Me.SpinButton1.Min = 1
Me.SpinButton1.Max = 5
mfg walter b

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Habe Lösung gefunden ... -)
04.03.2022 18:13:26
Walter
Hallo allerseits,
habe nochmal rumgetestet und eine Lösung gefunden:
Private Sub UserForm_Initialize()
Dim X As Single, Y As Single, LZoom As Long
Dim cCon As Control
'--------------- für Bildschirmanpassung --------------------------------------
Dim hwndForm As Long, hwndMenu As Long
Dim intY, intLast, intNext As Integer
'------------------------------------------------------------------------------
With UF_Haus
Const LHorizontale As Long = 3840 'mein Laptop
Const LVertikal As Long = 2160 'mein Laptop
'Const LHorizontale As Long = 1280 'dieter
'Const LVertikal As Long = 800 'dieter
'Const LHorizontale As Long = 1366 'birgit
'Const LVertikal As Long = 768 ' birgit
X = 100 / LHorizontale * GetSystemMetrics(0)
Y = 80 / LVertikal * GetSystemMetrics(1)
LZoom = Application.Min(X, Y)
'Me.Width = Me.Width / 100 * X
'Me.Height = Me.Height / 100 * Y 'damt wird beim spinbutton betätigen höhe kleiner
Me.Zoom = LZoom 'damit wird angepasst
hwndForm = FindWindow(vbNullString, Me.Caption) 'damit verankert
'------------ ab hier festgelegt, UF kann nicht verschoben werden ----------------
If hwndForm 0 Then
hwndMenu = GetSystemMenu(hwndForm, 0)
If hwndMenu 0 Then DeleteMenu hwndMenu, &HF010, &H0
End If
'-------------------------------------------------------------------------
End With
Nachteil, ich muss halt die Einstellung hier ändern.
mfg walter b
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige