Userform an Bildschirmgröße anpassen
#1
Hi,

wenn ich mit
Code:
'Anpassung der Userform an den Monitor
   With frm_Erfassung
     .Height = Application.Height
     .Width = Application.Width
   End With

eine große Userform auf den kompletten Bildschirm vergrößere und dann diese UF auf einem kleineren Tablet-Bildschirm aufrufe, ist die Userform ja zu groß und wird nur teilweise angezeigt. Warum tauchen da dann keine Scrollbalken auf, bzw. wie kann ich diese erscheinen lassen? Muß ich die extra in die Userform einfügen?

Oder muß ich die Userform so klein machen, daß sie auf den Tablet passt und dann auf einem größeren Bildschirm mit dem Makro vergrößern?
Top
#2
Hallo Ralf

teste mal in folgender Weise:


Code:
     .Height = Application.Height - 10

     .Width = Application.Width - 10


Du kannst ja mit den Werten ein wenig spielen.
Gruß Atilla
Top
#3
Hallo Ralf,

und schau mal in die Eigenschaften, dort kannst Du die Scrollbars einstellen



Gruß Carsten
Top
#4
(05.05.2017, 14:05)DbSam schrieb: Hallo Ralf,

und schau mal in die Eigenschaften, dort kannst Du die Scrollbars einstellen



Gruß Carsten

Hallo Carsten,

die können trotzdem über den Bildschirmrand hinweg nicht sichtbar oder anfassbar sein.
Gruß Atilla
Top
#5
Hi Carsten,

(05.05.2017, 14:05)DbSam schrieb: und schau mal in die Eigenschaften, dort kannst Du die Scrollbars einstellen

ich habe nun in den Eigenschaften der Userfom bei ScrollBars "3 - Both" eingestellt.
Wenn ich die Userform aufrufe, dann werden die Rahmen der Scrollbalken angezeigt, dort ist aber kein Balken zu sehen, den ich scrollen könnte.

Auch Atillas Vorschlag mit -10 brachte nicht die Lösung.

Fenster kleiner gemacht, UF aufgerufen und dann das UF Fenster verschoben:    
Top
#6
Hallo Ralf,


wie jetzt?
Erster Gedanke:
Code:
Private Sub UserForm_Initialize()
    'Zum testen
    'Me.Height = 5000
    'Me.Width = 5000
    
    With Me
        If Application.Height < .Height And Application.Width < .Width Then
            .ScrollHeight = .Height
            .ScrollWidth = .Width
            .ScrollBars = fmScrollBarsBoth
            .Height = Application.Height - 10
            .Width = Application.Width - 10
        ElseIf Application.Height < .Height Then
            .ScrollHeight = .Height
            .ScrollBars = fmScrollBarsVertical
            .Height = Application.Height - 10
        ElseIf Application.Width < .Width Then
            .ScrollWidth = .Width
            .ScrollBars = fmScrollBarsHorizontal
            .Width = Application.Width - 10
        End If
    End With
End Sub


... also irgendwie so


Gruß Carsten
[-] Folgende(r) 1 Nutzer sagt Danke an DbSam für diesen Beitrag:
  • Rabe
Top
#7
Hi Carsten,

(05.05.2017, 16:59)DbSam schrieb: ... also irgendwie so

einwandfrei, so hat es geklappt.
Top
#8
Hi Ralf,

schön, da kannst Du die Eigenschaften im Entwurf auch wieder auf 0 und ScrollBarsNone zurücksetzen, damit da kein leeres Zeugs im Form herum steht. ;)
Hast Du sicherlich schon gemacht ...


Gruß Carsten
Top
#9
Ja, habe ich gemacht!
Top
#10
Hallo!

Oder per API.

In ein allgemeines Modul (bei X-Resolution und Y-Resolution noch die Größe an die Auflösung des "Entwicklerbildschirms" anpassen):
Public Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As LongPtr) As LongPtr
Public Const X_RESOLUTION = 1600
Public Const Y_RESOLUTION = 900
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


In den Codebereich der Userform:
Private Sub Userform_Activate()
         If GetSystemMetrics(SM_CXSCREEN) < X_RESOLUTION Then _
            Me.Zoom = GetSystemMetrics(SM_CXSCREEN) / X_RESOLUTION * 100
End Sub


VBA/HTML-CodeConverter, AddIn für Office 2002-2016 - in VBA geschrieben von Lukas Mosimann. Projektbetreuung:RMH Software & Media

Code erstellt und getestet in Office 16 - mit VBAHTML 12.6.0


Gruß, René
[-] Folgende(r) 1 Nutzer sagt Danke an mumpel für diesen Beitrag:
  • Rabe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste