Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1700to1704
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

Bildschirmskalierung auslesen

Bildschirmskalierung auslesen
13.07.2019 09:40:21
Silke
Hallo Leute,
ich nutze eine Mappe mit Comboboxen auf verschiedenen Rechnern. Alle haben verschiedene Bildschirmauflösungen (100%, 125% …)
Diese Position der Comboboxen passe ich per VBA an damit die Größe immer gleich sein soll.
Aber durch die unterschiedlichen Bildschirmauflösungen verschieben die sich.
Nun habe ich danach gegoogelt und auch verschiedene Lösungen gefunden. Aber die sind alle für 32 Bit System. Da ich 64 Bit habe kommt bei mir eine Fehlermeldung.
Ich möchte abfragen die Auflösung bei 100% dann , sonst …
     With Worksheets(1).ComboBox1
.Font.Size = 11
.Height = 25
.Width = 221
.Left = 603.5
End With
Kann mir jemand weiterhelfen?
LG
Silke

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bildschirmskalierung auslesen
13.07.2019 10:02:31
Hajo_Zi
Hallo Silke,
mit den Prozentzahlen kann ich nichts anfangen.
http://hajo-excel.de/gepackt/fremd/userformgrosze_anpassen2.zip

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Das hat nichts meit der Frage zu tun !
13.07.2019 10:21:12
Silke
Leider hat die Antwort nichts mit der Frage zu tun.
Es geht um Die Bildschirmauflösung von Windows! Dort kann man einen Zoomfaktor in Prozent angeben.
AW: Bildschirmskalierung auslesen
13.07.2019 10:31:34
Piet
Hallo Silke
minst du sowas VOR deinem Code:
With Worksheets(1).ComboBox1
If ActiveWindow.Zoom = 125 Then  'oder >= 125
.Font.Size = 11
.Height = 25
.Width = 221
.Left = 603.5
End If
If ActiveWindow.Zoom = 150 Then  'oder >= 150
.Font.Size = 11
'usw.
End If
End With
mfg Piet
Anzeige
Jaaa .. perfekt. Vielen Dank
13.07.2019 10:45:50
Silke
Hallo Piet,
vielen Dank für deine Hilfe
Gruß
Silke
Es funktioniert doch nicht .. Windows Anzeige Zoom
13.07.2019 11:16:37
Silke
Hallo Piet, Hallo Leute,
habe es jetzt nochmal getestet.
Mit ActiveWindow.Zoom wird ja der Zoom von Excel abgefragt.
Ich meinte wenn man Windows Zoomt ( Rechte Mousetaste auf dem Windowsdesktop dann Anzeigeeinstellung und dann bei Größe von Text, Apps ...)
Bei 100% und 125% befinden sich die Comboboxen an anderen Positionen.
Kann mir jemand weiterhelfen?
LG
Silke
Combox Position im Tabellenblatt
13.07.2019 11:47:46
EtoPHG
Hallo Silke,
Offensichtlich befinden sich deine Comboboxen in Tabellenblätter.
Deren Position ist mit der Eigenschaft 'Von der Zellposition abhängig' oder '...unabhängig'.
Wenn du die Position von der Zellposition abhängig machst, sollten sie sich auch mit der Bildschirmauflösung (ohne VBA) 'skaliereren'.
Gruess Hansueli
Anzeige
AW: Combox Position im Tabellenblatt
13.07.2019 13:23:35
Silke
Leider nicht.
Wenn ich die Boxen nicht in VBA definiere verändert sich beim Klicken die Schriftgröße und die allgemeine Größe. Daher habe ich sie per VBA definiert. Jetzt verändern sie sich nicht mehr. Sind aber je nach Bildschirmauflösung an verschiedenen Positionen.
Gruß
Silke
AW: Combox Position im Tabellenblatt
13.07.2019 13:49:08
volti
Hallo Silke,
hiermit kannst Du die Maße Deines gerade aktiven Bildschirms auslesen. Der Declare für die Funktion ist für 64 Bit. Funktioniert auch für 32 Bit ab Windows 7.
Private Declare PtrSafe Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Const SM_CXSCREEN As Long = 0
Const SM_CYSCREEN As Long = 1
Sub LeseBildschirmGroesse()
 MsgBox "Breite: " & GetSystemMetrics(SM_CXSCREEN) & " &nbsp
; Höhe: "
& GetSystemMetrics(SM_CYSCREEN)
End Sub

Vielleicht kannst Du ja da was mit anfangen.
viele Grüße
Karl-Heinz
Anzeige
AW: Combox Position im Tabellenblatt
13.07.2019 14:42:25
Silke
Hallo Karl-Heinz,
vielen Dank für den Ansatz. Aber die Auflöung bleibt beim Verändern der Skalierung gleich.
Gruß
Silke
AW: Combox Position im Tabellenblatt
13.07.2019 14:43:43
Zwenn
Hallo Karl-Heinz,
ich kann sicher sagen, dass das für Silkes Vorhaben nicht funktioniert. Sie möchte den Zoom-Faktor des Betriebssystems auslesen und der muss nochmal auf die Bildschirmauflösung angewendet werden. Du lieferst also "nur" die erste Zutat sozusagen.
Ich weiß das so genau, weil ich Anfang des Jahres eine Dynamische UserForm programmiert habe und die Größe bei Aufruf über die Bildschirmauflösung berechne, damit sie auf jedem Bildschirm gleich wirkt. Das klappt auch wunderbar. Als ich diese UF dann aber auf einem Rechner mit Wondows-Zoom 125% öffnete, war die UF um 25% zu groß und passte nicht mehr auf den Bildschirm. Wie man den Zoom-Faktor rausbekommt habe ich allerdings auch nicht rausgefunden. Ich habe aber auch nicht alles dran gesetzt, weil das Problem bei mir keine große Rolle spielt.
Viele Grüße,
Zwenn
Anzeige
AW: Combox Position im Tabellenblatt
13.07.2019 15:01:41
volti
Hallo Zwenn,
danke für Deinen Beitrag, dem ich nur zustimmen kann. Zur Zoom-Prozenteinstellung finde ich (bislang) auch nichts in den APIs....
viele Grüße
KH
AW: Combox Position im Tabellenblatt
14.07.2019 12:00:29
Silke
Hallo Ihr lieben,
ich habe auch nochmal nach euren Ansätzen gesucht.
Kann auch rein garnichts finden.
Wäre echt toll wenn jemand einen Ansatz hätte.
Bis dahin liebe Grüße
Silke
AW: Combox Position im Tabellenblatt
14.07.2019 16:41:02
Zwenn
Hallo Silke,
Du kannst Dich mal durch folgenden Link wühlen. Ich denke da wird das Thema behandelt. Es ist aber recht umfangreich und bezieht sich auch nicht auf VBA. Evtl. kann man da was direkt im Office konfigurieren. Ich habe das aber nicht im Detail gelesen und auch nix ausprobiert.
http://docs.microsoft.com/de-de/office/client-developer/ddpi/handle-high-dpi-and-dpi-scaling-in-your-office-solution
Man kann auch auf Stackoverflow einiges finden, wenn man nach DPI Scaling sucht. Das bezieht sich nur nicht direkt auf VBA.
Viele Grüße,
Zwenn
Anzeige
64Bit Windows oder Office?
13.07.2019 14:41:31
EtoPHG
Hallo Silke,
Was meinst Du mit: Aber die sind alle für 32 Bit System. Da ich 64 Bit habe kommt bei mir eine Fehlermeldung.?
Bezieht sich das auf das Betriebssystem oder auf die Office-Anwendungen?
...und, wenn Du schon eine Fehlermeldung hast:
Bei welcher Codezeile tritt sie das erste mal auf und wie lautet sie (vollständig)?
Gruess Hansueli
AW: Bildschirmskalierung auslesen
13.07.2019 22:58:03
Piet
Hallo Silke
wenn die ComboBoxen Blattobjekte sind müsstest du sie mit Top = Oben und Left = Links anordnen können.
ActiveSheet.Shapes(xx).Top = 123 - oder ActiveSheet.CheckBoxes(xx).Top = 123
ActiveSheet.Shapes(xx).Left = 456
mfg Piet
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge