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