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

Zoom per VBA über alle Tabellenblätter

Forumthread: Zoom per VBA über alle Tabellenblätter

Zoom per VBA über alle Tabellenblätter
27.04.2006 20:19:26
Stefan
Guten Abend zusammen,
ich erbitte mal wieder eure Hilfe. In Tabelle 1 habe ich mir per SpinButton (der mit Pfeil nach oben und nach unten) erstellt. Dieser ändert bei Betätigung den Bildschirmzoom in 10er Schritten. Nachfolgenden Code habe ich in Tabelle1 stehen:

Private Sub SpinButton1_Change()
M = [D1] * 10
neuer_Faktor = [D3] + M
ActiveWindow.Zoom = neuer_Faktor
End Sub

'in D1 ist die Zellverknüpfung vom Button
'in D3 steht der Anfangswert 50 und erhöht sich oder verringert sich bei Betätigung des Buttons
Leider funktioniert es nur in dieser Tabelle. Ich möchte, das gleich alle 4 Blätter die gleiche Zoomeinstellung bekommen. Nur weiß ich nicht wie das geht. Der Code müßte dazu wohl in -Diese Arbeitsmappe- stehen, aber ich bekomme das mit der makierung der Blätter nicht hin.
Hat jemand eine Idee die mir weiterhilft.
Vielen Dank und Gruß
Stefan
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zoom per VBA über alle Tabellenblätter
27.04.2006 20:31:39
chris
Hallo du kannst den Zoom nur ändern für das aktive Blatt.
Müsstet höchstens eine schleife durchlaufen lassen die nacheinander alle deine Tabellenblätter selektiert.Wenn das ok wäre für dich und du es nicht schaffst würde ich dir gerne noch einmal helfen.
gruß Chris
AW: Zoom per VBA über alle Tabellenblätter
27.04.2006 20:45:56
Stefan
Hallo Chris,
danke für Deine schnelle Antwort. Schade dass das nicht so einfach geht.
Kann ich denn auf Dein Angebot zurückkommen ? Ich weiß nur das das irgendwie mit for i = 1 to ... count oder so geht.
Würde mich freuen wenn Du mir hilfst.
Gruß Stefan
Anzeige
AW: Zoom per VBA über alle Tabellenblätter
28.04.2006 09:47:06
Stefan
Hallo Chris,
hast Du noch eine einfache Idee zu meiner Zoom-Funktion über alle Tabellenblätter.
Würd mich freuen.
Gruß Stefan
AW: Zoom per VBA über alle Tabellenblätter
27.04.2006 20:50:06
Josef
Hallo Stefan!
Warum so kompliziert?
Angenommen der SpinButton steht in Tabelle1.
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub SpinButton1_Change()
intZoom = SpinButton1.Value
ActiveWindow.Zoom = intZoom
End Sub


' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Activate()
intZoom = ActiveWindow.Zoom
With Sheets("Tabelle1").SpinButton1
  .Min = 10
  .Max = 200
  .SmallChange = 10
  .Value = intZoom
End With
End Sub


Private Sub Workbook_SheetActivate(ByVal Sh As Object)
ActiveWindow.Zoom = intZoom
End Sub


' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public intZoom

'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Zoom per VBA über alle Tabellenblätter
27.04.2006 21:08:10
Stefan
Hallo Sepp,
Danke für Deine Idee. Als Laie würde ich sagen, mein Code ist wesentlich unkomplizierter, nur funktioniert er nicht wie gewünscht. Ich habe Deinen Code einfach mal eingebaut und siehe da: funktioniert prima.
Also, herzlichen Dank dafür und schönen Abend.
Gruß Stefan
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zoom per VBA über alle Tabellenblätter einstellen


Schritt-für-Schritt-Anleitung

  1. Öffne das Excel-Dokument und gehe zu den Entwicklertools. Wenn die Entwicklertools nicht sichtbar sind, aktiviere sie über die Excel-Optionen.

  2. Füge einen SpinButton zu deiner Tabelle hinzu. Du findest diesen unter den Steuerungselementen in der Entwicklertools-Leiste.

  3. Verlinke den SpinButton mit einer Zelle. In diesem Beispiel wird die Zelle D1 verwendet, um den Wert des SpinButtons zu speichern.

  4. Füge den folgenden VBA-Code in das entsprechende Tabellenblatt ein (z.B. Tabelle1):

    Private Sub SpinButton1_Change()
       M = [D1] * 10
       neuer_Faktor = [D3] + M
       ActiveWindow.Zoom = neuer_Faktor
    End Sub
  5. Füge den folgenden Code in das Modul „Diese Arbeitsmappe“ ein, um den Zoom für alle Blätter einzustellen:

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
       ActiveWindow.Zoom = intZoom
    End Sub
  6. Definiere eine Variable, um den Zoom-Wert zu speichern. Dies geschieht in einem allgemeinen Modul:

    Public intZoom As Integer
  7. Passe die Maximal- und Minimalwerte des SpinButtons an:

    With Sheets("Tabelle1").SpinButton1
       .Min = 10
       .Max = 200
       .SmallChange = 10
       .Value = intZoom
    End With
  8. Teste den Zoom durch Betätigung des SpinButtons. Du solltest sehen, dass der Bildschirmzoom für alle Blätter gleich bleibt.


Häufige Fehler und Lösungen

  • Zoom funktioniert nur auf einem Blatt: Stelle sicher, dass der Code im „Diese Arbeitsmappe“-Modul korrekt implementiert ist und dass die Workbook_SheetActivate-Subroutine vorhanden ist.

  • SpinButton aktualisiert nicht: Überprüfe, ob die Zelle D1 korrekt mit dem SpinButton verknüpft ist und dass der Wert in D3 initialisiert wurde.


Alternative Methoden

Anstatt einen SpinButton zu verwenden, kannst du auch eine Dropdown-Liste erstellen, um den gewünschten Zoom-Wert auszuwählen. Hierzu fügst du eine Datenvalidierung in eine Zelle ein und verlinkst diese mit dem Zoom-Wert.


Praktische Beispiele

Hier ist ein Beispiel, wie du den activewindow.zoom in einer Schleife für mehrere Blätter einstellen kannst:

Sub SetZoomForAllSheets()
    Dim ws As Worksheet
    Dim zoomValue As Integer
    zoomValue = ActiveWindow.Zoom ' Aktuellen Zoom-Wert abfragen

    For Each ws In ThisWorkbook.Worksheets
        ws.Activate
        ActiveWindow.Zoom = zoomValue
    Next ws
End Sub

Dieses Skript stellt sicher, dass der Zoom für alle Blätter in der Arbeitsmappe auf den gleichen Wert gesetzt wird.


Tipps für Profis

  • Nutze Application.ScreenUpdating = False, um die Aktualisierung des Bildschirms während der Ausführung des Codes zu deaktivieren. Dies kann die Leistung verbessern.

  • Speichere deinen Code in einem Modul, um die Wiederverwendbarkeit zu erhöhen. So kannst du denselben Code für andere Arbeitsmappen nutzen.


FAQ: Häufige Fragen

1. Wie kann ich den Zoom in Excel ohne VBA einstellen?
Du kannst den Zoom einfach über die Statusleiste unten rechts in Excel einstellen.

2. Funktioniert dieser Code auch in Excel Online?
Nein, VBA ist nicht in Excel Online verfügbar. Du musst eine Desktop-Version von Excel verwenden.

3. Was passiert, wenn ich den Zoom auf 0 setze?
Ein Zoom-Wert von 0 ist ungültig. Der minimum Zoom-Wert sollte mindestens 10 betragen, um eine sinnvolle Ansicht zu gewährleisten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige