Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zoom je nach Bildschirmauflösung anpassen

Forumthread: 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
Anzeige

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
Anzeige
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
Anzeige
@ 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

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zoom je nach Bildschirmauflösung anpassen


Schritt-für-Schritt-Anleitung

Um den Zoom in Excel je nach Bildschirmauflösung anzupassen, kannst du VBA (Visual Basic for Applications) verwenden. Folge diesen Schritten:

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.
  2. Erstelle ein neues Modul: Rechtsklicke auf "VBAProject (deineDatei.xlsx)" und wähle "Einfügen" -> "Modul".
  3. Füge den folgenden Code ein:

    Option Explicit
    Public Const SM_CXSCREEN = 0
    Public Const SM_CYSCREEN = 1
    
    Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    
    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
  4. Speichere deine Datei: Stelle sicher, dass du die Datei als Excel-Arbeitsmappe mit Makros speicherst (.xlsm).
  5. Teste das Makro: Wechsle zwischen den Blättern, um zu sehen, ob sich der Zoom entsprechend der Bildschirmauflösung anpasst.

Häufige Fehler und Lösungen

  • Problem: Der Zoom ändert sich nicht.

    • Lösung: Stelle sicher, dass das Makro in "DieseArbeitsmappe" eingefügt wurde und dass du die Datei als .xlsm speicherst.
  • Problem: Fehlermeldung beim Ausführen des Makros.

    • Lösung: Überprüfe, ob der Code korrekt eingegeben wurde und keine Syntaxfehler enthält.

Alternative Methoden

Eine andere Möglichkeit, die Excel-Tabelle auf den Bildschirm anzupassen, besteht darin, die Spaltenbreite manuell einzustellen. Du kannst den Zoom auch über den Excel-Makrorekorder festlegen:

  1. Starte den Makrorekorder: Gehe zu "Entwicklertools" -> "Makro aufzeichnen".
  2. Führe die Schritte aus, um den Zoom anzupassen: Gehe zu "Ansicht" -> "Zoom" und wähle "An Markierung anpassen".
  3. Beende den Makrorekorder und passe den aufgezeichneten Code an, um ihn für deine Bedürfnisse zu optimieren.

Praktische Beispiele

Hier ein Beispiel, wie du den Zoom für spezifische Blätter unterschiedlich festlegen kannst. Angenommen, du möchtest für das Blatt "Daten" 100% und für "Bericht" 75% einstellen:

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Select Case Sh.Name
        Case "Daten"
            ActiveWindow.Zoom = 100
        Case "Bericht"
            ActiveWindow.Zoom = 75
    End Select
End Sub

Dieses Beispiel zeigt, wie du die Bildschirmgröße der Tabelle anpassen kannst, um eine individuellere Benutzererfahrung zu schaffen.


Tipps für Profis

  • Monitor anpassen: Berücksichtige bei der Anpassung des Zooms, wie der Benutzer den Monitor verwendet. Unterschiedliche Monitore haben verschiedene Bildschirmauflösungen, die du in deinem VBA-Code berücksichtigen solltest.
  • Fehlerprotokollierung: Füge eine Fehlerbehandlung in deinen VBA-Code ein, um Probleme zu identifizieren, wenn sich der Zoom nicht wie gewünscht ändert.
  • Dokumentation: Halte den Code gut dokumentiert, damit du oder andere Benutzer später leicht verstehen können, wie die Anpassungen funktionieren.

FAQ: Häufige Fragen

1. Wie kann ich den Zoom für alle Blätter gleichzeitig ändern?
Du kannst den Zoom in der Workbook_SheetActivate-Subroutine für alle Blätter festlegen, indem du die entsprechenden Bedingungen hinzufügst.

2. Funktioniert dieser Code auch in Excel Online?
Nein, VBA funktioniert nicht in Excel Online. Du musst die Desktop-Version von Excel verwenden, um diesen Code auszuführen.

3. Kann ich den Zoom auch ohne VBA anpassen?
Ja, du kannst den Zoom manuell über das Menü "Ansicht" anpassen, aber es ist nicht so automatisiert wie mit VBA.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige