Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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?
Antworten 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
Antworten Top
#3
Hallo Ralf,

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



Gruß Carsten
Antworten Top
#4
(05.05.2017, 13: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
Antworten Top
#5
Hi Carsten,

(05.05.2017, 13: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:    
Antworten 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
Antworten Top
#7
Hi Carsten,

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

einwandfrei, so hat es geklappt.
Antworten 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
Antworten Top
#9
Ja, habe ich gemacht!
Antworten 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
Antworten Top


Gehe zu:


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