Registriert seit: 10.04.2014
Version(en): 2016 + 365
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?
Registriert seit: 14.04.2014
Version(en): 2003, 2007
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
Registriert seit: 28.07.2015
Version(en): 365
Hallo Ralf,
und schau mal in die Eigenschaften, dort kannst Du die Scrollbars einstellen
Gruß Carsten
Registriert seit: 14.04.2014
Version(en): 2003, 2007
(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
Registriert seit: 10.04.2014
Version(en): 2016 + 365
05.05.2017, 14:33
(Dieser Beitrag wurde zuletzt bearbeitet: 05.05.2017, 14:35 von Rabe.)
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:
Registriert seit: 28.07.2015
Version(en): 365
05.05.2017, 16:59
(Dieser Beitrag wurde zuletzt bearbeitet: 05.05.2017, 16:59 von DbSam.
Bearbeitungsgrund: den ersten Wurf der Sub wenigstens etwas sinnvoller angepasst ;)
)
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:1 Nutzer sagt Danke an DbSam für diesen Beitrag 28
• Rabe
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi Carsten,
(05.05.2017, 16:59)DbSam schrieb: ... also irgendwie so
einwandfrei, so hat es geklappt.
Registriert seit: 28.07.2015
Version(en): 365
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
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Registriert seit: 11.04.2014
Version(en): Office 365
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:1 Nutzer sagt Danke an mumpel für diesen Beitrag 28
• Rabe