Bildschirmauflösung

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Bildschirmauflösung von: Thomas F.
Geschrieben am: 04.03.2005 11:20:37

Hallo hier im Forum

Ich habe hier mehrere Tabellenblätter und UserFormen in einer Arbeitsmappe mit einer Auflösung von 1280 x 1024 erstellt. Nun soll die Arbeitsmappe auch auf anderen Monitoren mit einer Auflösung von 1024 x 768 angezeigt werden. Gibt es hierzu einen VBA Code, der die Auflösung erkennen kann und die Arbeitsmappe dann auf die jeweilige Auflösung anpasst ? Ich habe das Forum schon durchsucht, aber nichts brauchbares finden können. Wäre Nett wenn jemand hier im Forum eine Lösung für das Problem kennt und mir dieses mitteilen würde.

Es wäre auch Nett wenn mir jemand sagen würde, wenn das das so nicht geht per VBA Code.

Bis hierher schon einmal ein Danke schön an Euch

Gruß
Thomas. F

Bild


Betrifft: AW: Bildschirmauflösung von: Matthias G
Geschrieben am: 04.03.2005 11:41:49

Hallo Thomas,

ein Beispiel, wenn z.B. Spalten A bis H sichtbar sein sollen:
Sub ZoomAnpassen()
Dim s As Range
Set s = Selection
Application.ScreenUpdating = False
Range("A1:H1").Select
ActiveWindow.Zoom = True
s.Select
Application.ScreenUpdating = True
End Sub
Gruß Matthias


Bild


Betrifft: AW: Bildschirmauflösung von: Thomas. F
Geschrieben am: 04.03.2005 11:50:53

Hallo Matthias

Vielen Dank für die schnelle antwort.
Aber gibt es dafür auch noch eine andere Lösung ? Denn so müsste ich ja jede Tabelle einzeln anpassen, da jede Tabelle andere Spalten sichtbar oder nicht sichtbar sein müssten. Ich suche eigendlich eine Lösung die das evt. von allein Regelt und mir auch die UserForm mit anpasst.

Gruß
Thomas


Bild


Betrifft: AW: Bildschirmauflösung von: Matthias G
Geschrieben am: 04.03.2005 11:55:18

Hallo Thomas,

Du kannst auch mit Application.Width die Fensterbreite ermitteln und entsprechend reagieren.

Oder wenn dich nur die Bildschirmauflösung interessiert, guck mal hier:
https://www.google.de/search?hl=de&newwindow=1&q=bildschirmaufl%C3%B6sung+site%3Awww.herber.de&btnG=Suche&meta=

Gruß Matthias


Bild


Betrifft: AW: Bildschirmauflösung von: Thomas. F
Geschrieben am: 04.03.2005 12:22:29

hallo Matthias

also mich Interessiert bei den Tabellen nur die Fensterbreite und der Zoom, die dann auf eine auflösung von 1024 x 768 angepasst werden. wärst Du nochmal so Nett und könntest mir den Code dafür nennen, und mr evt. auch sagen wo dieser Code dann eingefügt werden müßte ?

Danke nochmals

Gruß
Thomas


Bild


Betrifft: Bildschirmauflösung von: Thomas. F
Geschrieben am: 04.03.2005 18:17:08

Hallo nochmal

ich habe hier folgenden Code für mein Problem für die Auflösung der Userformen gefunden.
Nun meine Frage, kann ich den folgenden Code so schreiben für zwei Userformen ?

Es wäre dann auch Nett wenn mir jemand sagen könnte wo in der VBA ich die einzelnen Code eingeben müßte.

1. Eine Funktion zum ermitteln der aktuellen BS - Auflösung.

Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, _
ByVal nIndex As Long) As Long
Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _
ByVal hdc As Long) As Long
Const HORZRES = 8
Const VERTRES = 10
Function ScreenResolution()
Dim lRval As Long
Dim lDc As Long
Dim lHSize As Long
Dim lVSize As Long
lDc = GetDC(0&)
lHSize = GetDeviceCaps(lDc, HORZRES)
lVSize = GetDeviceCaps(lDc, VERTRES)
lRval = ReleaseDC(0, lDc)
ScreenResolution = lHSize & "x" & lVSize
End Function
2. Änderung der größe der UserForm
Private Sub cmdSchalttafel _Initialize()
If ScreenResolution() = "800x600" Then
cmdSchalttafel.Height = 430
cmdSchalttafel.Width = 600
cmdSchalttafel.Zoom = 70
End If
If ScreenResolution() = "1024x768" Then
cmdSchalttafel.Height = 555
cmdSchalttafel.Width = 744
cmdSchalttafel.Zoom = 100
End If
If ScreenResolution() = "1280x1024" Then
cmdSchalttafel.Height = 732
cmdSchalttafel.Width = 936
cmdSchalttafel.Zoom = 100
End If
If ScreenResolution() = "800x600" Then
frmÜbersicht.Height = 430
frmÜbersicht l.Width = 600
frmÜbersicht.Zoom = 70
End If
If ScreenResolution() = "1024x768" Then
frmÜbersicht.Height = 555
frmÜbersicht.Width = 744
frmÜbersicht.Zoom = 100
End If
If ScreenResolution() = "1280x1024" Then
frmÜbersicht.Height = 732
frmÜbersicht.Width = 936
frmÜbersicht.Zoom = 100
End If
End Sub


Für Eure Hilfe Danke ich schon einmal im vorraus

Gruß
Thomas. F


Bild


Betrifft: AW: Bildschirmauflösung von: Hajo_Zi
Geschrieben am: 06.03.2005 16:35:49

Hallo Thomas,

passe doch die Prozentzahl an. Die Prozental bekommt man ja raus.

Unter diese Arbeitsmappe.
Option Explicit
Private Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public Enum ScreenArgs
HORIZONTAL
VERTIKAL
End Enum
Public Function ScreenResolution(HV As ScreenArgs) As Long
If HV = 0 Or HV = 1 Then ScreenResolution = GetSystemMetrics(HV)
End Function

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Select Case ScreenResolution(0)
        Case 1152
            ActiveWindow.Zoom = 110
        Case 1024
            ActiveWindow.Zoom = 100
        Case 800
            ActiveWindow.Zoom = 75
        Case 640
            ActiveWindow.Zoom = 60
    End Select
End Sub



Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.




 Bild

Beiträge aus den Excel-Beispielen zum Thema "VB-Editor MainWindow"