Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
328to332
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
328to332
328to332
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zoom je nach Bildschirmauflösung anpassen

Zoom je nach Bildschirmauflösung anpassen
31.10.2003 16:51:39
carsten
Hallo zusammen,

ich habe eine Datei mit mehreren Tabellenblättern. Ich möchte nun, dass sich der Zoom je nach aktueller Bildschirmauflösung des Benutzers anpasst und zwar für alle Tabellenblätter (bei 800x600 = 75%, bei 1024x768 = 100%)
Wie kann ich das realisieren?

Gruß
Carsten

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zoom je nach Bildschirmauflösung anpassen
31.10.2003 16:57:13
Hajo_Zi
Hallo Carsten

hast Du Dir für Deinen Level nicht ein wenig viel vorgenommen.
Folgendes Stand mal im Internet zur Bildschirmauflösung.

Option Explicit
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1
Declare

Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
Public 

Sub Main()
Dim gWidth As Integer, gHeight As Integer
gWidth = GetSystemMetrics(SM_CXSCREEN)
gHeight = GetSystemMetrics(SM_CYSCREEN)
MsgBox "Bildschirmbreite: " & Chr(9) & gWidth & Chr(13) & "Bildschirmhöhe: " & Chr(9) & gHeight
End Sub



Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.


Anzeige
AW: Zoom je nach Bildschirmauflösung anpassen
31.10.2003 17:06:27
Carsten
Hallo Hajo,

sorry, aber ich hatte nicht erwähnt, dass ich mit folgendem Makro den Zoom beim Dateistart bereits für die erste Seite anpasse. Ich dachte, es wäre recht einfach, das auf alle Blätter auszuweiten. Ich hätte den Code sofort posten sollen. Verzeih mir ;-)

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



Sub Set_Zoom()
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


Gruß
Carsten
Anzeige
AW: Zoom je nach Bildschirmauflösung anpassen
31.10.2003 17:10:38
Hajo_Zi
Hallo Carsten

schreibe fogenden Code in die Datei unter DieseArbeitsmappe.

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.


Anzeige
AW: Zoom je nach Bildschirmauflösung anpassen
03.11.2003 08:17:26
Carsten
Hallo Hajo,

vielen dank für Deine Mühe. Funktioniert an sich prima, hat allerdings den Nachteil, dass in allen Blättern der Zoom gleich ist. War ursprünglich auch so gedacht, da ich nicht wußte, dass es auch Möglichkeiten gibt das individuell zu regeln.
In dem Punkt ist Udo's Version aber variabler.

Gruß
Carsten
AW: Zoom je nach Bildschirmauflösung anpassen
03.11.2003 10:56:48
Hajo_Zi
Hallo Carsten

Du hast abe schon gesehen das es unteschiedliche Varianten sind. Bei meinem Wird immer der fest bvorgegeben Prozentwert eingestellt, bei Udo wird immer ein Bereich gezoomt.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.

Microsoft MVP für Excel

Das Forum lebt auch von den Rückmeldungen.


Anzeige
AW: Zoom je nach Bildschirmauflösung anpassen
03.11.2003 16:09:12
Carsten
Hallo Hajo,

das habe ich schon gesehen. Bei Deiner Lösung kann ich den Wert jedoch nur für die gesamte Datei setzen während ich bei Udos Lösung für jedes Blatt eigene Einstellungen treffen kann.

Gruß
Carsten
AW: Zoom je nach Bildschirmauflösung anpassen
31.10.2003 17:11:48
udo
Hi karsten,

da gibts in der Recherche unter Zoom einige Beiträge,...

Doch ich persöhnlich hab mir meine Dateien noch folgendermaßen erweitert, indem ich per makrorekorder folgendes aufgezeichnet hatte, und es dan noch gefinnischt hat per feineinstellung der werte in der Aufzeichnug, und durch die Spaltenbreite.

Stell mal zunächst deine Auflösung auf 100% , dann

1. Makrorekorder starten ( Namen geben usw. ) ...
2. markiere deine Spalten die zu sehen sind ( die also im sichtbaren Bereich liegen ),
je nach Spaltenbreite deiner Spalten siehst du vielleicht A bis M.
3. Markier dann A bis M
4. geh oben im Excelregister auf Ansicht
5. dort auf Zoom, und dann auf " an Markierung anpassen "
6. wähle vielleicht noch kurz irgend eine Zelle ( um die Auswahl wieder auf zu heben )
7. und beende das Makro.

8. jetzt musst du nur noch die ganzen VBA Anweisungen dieses Makros in das des Tabellenbalttes übernehmen, und zwar in ...


Private Sub Worksheet_Activate()
sieht dann zB. so aus :

Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
Range("A1:N1").Select
Range("A1").Activate
ActiveWindow.Zoom = True
Range("A1").Select
Application.ScreenUpdating = True
End Sub


----------------------------------------------

das tolle daran ist , das sich die Datei / Tabelle nun selbst automatisch auf die
Auflösung oder den gerade verwendeten Monitor selbst einstellt, ohne das du da was
einstellen musst.

Viel Spass

Gruß udo
Anzeige
achso, nochwas ...
31.10.2003 17:26:22
udo
der einzige Haken bei deieser Art der Lösung ist, dass wenn du den Bereich in der
VBA Anweisung ( wie in meinem Beispiel A1:N1 ) beschrieben, dann noch nachträglich
( also sprich wenn du diesesmakro dem Tab.blatt längst zugewiesen hast, und somit das Makro bereits greift bein Aktivieren des Tab.blattes ), und du nun noch die Spaltenbreite von A bis N nachträglich änderst, dann passt sich die Tabelle trotzdem
ja nur an den in der VBA anwesung definierten Bereich an.

Das mausst du berücksichtigen, oder du änderst dann ebenfalls noch nachträglich die VBA Anweisung um auf zB. A1 : K1 ( wenn dei Spalten breiter wurden ), oder
A1:X1 wenn die Spalten schmaler wurden nachträgl.

Deshalb zuerst deine Tabelle entwerfen und zurechtrücken wie du es halt brauchst, und der VBA Anweisung die ich dir gennant hatte die Sichtbaren Spalten ein geben,
eben die die im sichtbaren Bereich liegen.

So, sorry, ich hoff das war jetzt nicht zu complicated.

;-)

Gruß udo
Anzeige
... kleine Rechtschreibfehler sind bitte zu ..
31.10.2003 17:31:43
udo
entschuldigen, hocke schon den ganzen Tag an der Kiste, ich packs dann auch mal,

Danke , und ebenfalls schönes Wochenende

Gruß udo
AW: ... kleine Rechtschreibfehler sind bitte zu ..
03.11.2003 08:19:27
Carsten
Hallo Udo,

Deine Idee klappt prima und ist variabler als die Lösung von Hajo, da ich hier die Zoomstufe für jedes Blatt individuell anpassen kann.
Ich machs nach Deinem Vorschlag.

Danke

Gruß
Carsten
@ Hajo und Udo
31.10.2003 17:18:43
Carsten
Danke für Eure Hilfe. Ich werde beide Versionen mal testen und gebe in Kürze eine Rückinfo.

Schönes Wochenende.

Gruß
Carsten

13 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige