Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1104to1108
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

Bildschirmauflösung<> Userform - Größe abstimmen

Bildschirmauflösung<> Userform - Größe abstimmen
k
Hallo,
Habe eine Userform erstellt mit vielen Details und Frames etc. Läuft soweit super. Dachte auch die Bildschirmgröße berücksichtigt zu haben, aber nun habe ich folgendes Problem:
Die Userform ist laut Eigenschaft mit folgenden Maßen erstellt:
Height mit 700 und die Weight mit 1150
Nun habe ich die Datei auf einem Rechner getestet (Habe ein Bildschirm mit 1920 x 11080 an dem es die Datei erstellt hatte) dessen Bildschrim folgende Einstellung hat: 1280 x 768 !
Aber es ist dennoch so, das die Userform deutlich größer ist, bzw. ca. 1/6 abgschnitten wird (links und unten)...Warum ?!?!
Für jeden Hinweis bin ich dankbar... kann man sich nicht auf die Auflösung im VBA-EigenschaftsFenster der Userform verlassen ?!
Gruß
Kay

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bildschirmauflösung<> Userform - Größe abstimmen
22.09.2009 14:14:00
Tino
Hallo,
versuche es mal hiermit, die Werte des Bildschirms wo die Userform erstellt wurde noch anpassen.
Private Declare Function GetSystemMetrics Lib "user32" _
  (ByVal nIndex As Long) As Long

'Werte des Bildschirms an dem die Userform erstellt wurde 
Const Vertikal As Long = 1050
Const Horizontale As Long = 1680


Private Sub UserForm_Initialize()
Dim X As Single, Y As Single, LZoom As Long
Dim cCon As Control
X = 100 / Horizontale * GetSystemMetrics(0)
Y = 100 / Vertikal * GetSystemMetrics(1)
LZoom = Application.Min(X, Y)

Me.Width = Me.Width / 100 * X
Me.Height = Me.Height / 100 * Y
Me.Zoom = LZoom

For Each cCon In Me.Controls
 cCon.Font.Size = cCon.Font.Size / 100 * LZoom
Next cCon

End Sub
Gruß Tino
Anzeige
AW: Bildschirmauflösung<> Userform - Größe abstimmen
22.09.2009 15:12:18
k
Hallo Tino,
...vielen Dank, die Userform passt sich ja gut an, aber die Schrift kann keiner mehr lesen (sieht eher aus wie kleine "Fliegen-A-A's"... Schade.
Aber der Ansatz ist gut und ich werde mal etwas experimentieren...
Gruß
Kay
versuch einfach mal
22.09.2009 16:56:54
Tino
Hallo,
und lass die schleife
For Each cCon In Me.Controls
cCon.Font.Size = cCon.Font.Size / 100 * LZoom
Next cCon
weg und natürlich dann auch Dim cCon As Control
Gruß Tino
AW: versuch einfach mal
23.09.2009 11:43:49
k
Hallo Tino,
...ich fang an Excel zu hassen, nee - eher wohl mich. Irgendwie klappt das alles nicht, was ich vorhabe.
Es hat zwar funktioniert, was Du da geschrieben hast. Aber, nur auf meinem Rechner ... da ich eine Hohe Bildschirmauflösung habe (1920x1180) und die Userform mit 1175x708 dort sauber reinpasst.
Auf dem Rechner meines Kollegen mit 1280x1024 ging es mit Deinem Code auch so... doch jetzt mal auf dem Rechner meiner Kollegin probiert...denkste. Wieder abgeschnitten ?! (Ihre Bildschirmauflösung liegt bei 1024x768...)
Egal was ich tu...entweder es wird sauber reingezoomt, dann kann nur keiner mehr was lesen oder es ist GROSS und Lesbar, dann fehlen die Ränder...
Werde nach 1 1/2 Tagen probiererei wohl das Handtuch werfen und alle Userformen die "zu Gross" sind so umbauen, dass Sie auch noch auf einem "Handy-Display" lesbar sind. Zwar umständlicher für den User, da er immer wieder klicken muss...aber dann ist es halt so...
Danke aber für Deine Hilfe !! ;o)
Gruß
Kay
Anzeige
AW: versuch einfach mal
23.09.2009 12:27:01
Tino
Hallo,
versuche es einfach mal umgedreht zu machen,
nicht die kleinste sondern die größte Änderung anzupassen.
Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
'Werte des Bildschirms an dem die Userform erstellt wurde
Const Vertikal As Long = 1050
Const Horizontale As Long = 1680
Private Sub UserForm_Initialize()
Dim X As Single, Y As Single, LZoom As Long
Dim cCon As Control
X = 100 / Horizontale * GetSystemMetrics(0)
Y = 100 / Vertikal * GetSystemMetrics(1)
LZoom = Application.Max(X, Y)
Me.Width = Me.Width / 100 * X
Me.Height = Me.Height / 100 * Y
Me.Zoom = LZoom
End Sub

Gruß Tino
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige