Sitemap Fernwartung Impressum
Online Tipps & Tricks
Komfortable Navigation mit der Excel-Lupe (Excel)
01.01.2011

Komfortable Navigation mit der Excel-Lupe
Versionen: Excel 97, 2000 und 2002

Excel bietet reichlich Platz für Ihre Daten. So sind Tabellen mit mehreren hundert Zeilen und entsprechend vielen Spalten keine Seltenheit. Doch je größer ein Tabellenmodell wird, desto schwieriger wird es auch, schnell zum gerade benötigten Bereich zu springen. Wenn Sie den Zoom-Faktor verkleinern, können Sie die Zahlen nicht mehr lesen. Und wenn Sie mit der Originalgröße arbeiten, dauert das Blättern ungebührlich lange.

Ein Ausweg aus dem Dilemma ist die Lupenfunktion, die wir in diesem Beitrag vorstellen. Damit teilen Sie den Excel-Bildschirm in zwei Fenster auf. In dem einen Fenster sehen Sie Ihre Tabelle in einer verkleinerten Darstellung, so dass Sie sich schnell zu einem bestimmten Zellbereich bewegen können. In dem anderen Fenster erscheinen die gerade markierte Zelle sowie der umgebende Bereich in der Originalgröße. So können Sie bequem die Zellinhalte lesen und/oder Eingaben vornehmen.

Um die Excel-Lupe einzurichten, gehen Sie folgendermaßen vor:


Legen Sie eine neue Excel-Datei an und wechseln Sie mit Alt+F11 in den Visual Basic-Editor.

Öffnen Sie mit Einfügen-Klassenmodul das Fenster eines neuen Klassenmoduls. Über das Klassenmodul definieren Sie eine neue Objektklasse mit speziellen Eigenschaften und Methoden. So können Sie später das aktuelle Tabellenblatt als Objekt an die Klasse übergeben und mit den Eigenschaften und Methoden des Klassenmoduls manipulieren.

Weisen Sie der neuen Klasse zuerst einen eindeutigen Namen zu, indem Sie im Eigenschaftenfenster des Visual Basic-Editors im Feld "(Name)" die Bezeichnung "clsLupe" eingeben.

Danach setzen Sie den Cursor wieder in das Codefenster des Klassenmoduls und deklarieren eine Objektvariable namens "objBlatt":

Public WithEvents objBlatt As Worksheet


Beachten Sie den Zusatz "WithEvents"! Er erlaubt die Überwachung von Ereignissen, die von dem zugrunde liegenden Objekt, in diesem Fall von einem Tabellenblatt, ausgelöst werden. Mit den weiteren Codezeilen des Klassenmoduls bestimmen Sie genau, was bei einem bestimmten Ereignis passieren soll.

Unter der Deklarationszeile legen Sie drei Konstanten fest. Sie bestimmen a) die Breite des Lupenfensters, b) die Höhe des Lupenfensters und c) die Hintergrundfarbe, mit der die gerade markierte Zelle hervorgehoben wird:

Const LUPENBREITE As Long = 200
Const LUPENHOEHE As Long = 200
Const CURSORFARBE = 36


Wenn Sie beim Praxiseinsatz feststellen, dass das Fenster zu breit oder hoch ist oder dass die Hintergrundfarbe nicht zu Ihren eigenen Zellformatierungen passt, können Sie diese Werte individuell anpassen.

In die nächsten drei Zeilen tragen Sie Variablendeklarationen ein, die von mehreren Prozeduren des Klassenmoduls benötigt werden. Sie müssen deshalb auf Modulebene deklariert werden.

Dim objZoomfenster As Window
Dim objAlteAuswahl As Range
Dim varZellfarbe As Variant


Es folgt die Prozedur, die beim Aufruf/Initialisieren der Klasse ausgeführt wird:

Private Sub Class_Initialize()
Dim objOriginal As Window
Dim lngExcelBreite As Long

lngExcelBreite = Application.UsableWidth
Set objOriginal = ActiveWindow
With objOriginal
.WindowState = xlNormal
.Left = 2
.Top = 2
.Width = lngExcelBreite-LUPENBREITE
.Height = Application.UsableHeight
.NewWindow
End With
Set objZoomfenster = ActiveWindow
With objZoomfenster
.WindowState = xlNormal
.Caption = "Blattlupe"
.Left = lngExcelBreite-LUPENBREITE
.Top = 2
.Width = LUPENBREITE
.Height = LUPENHOEHE
.Zoom = 100
End With
objOriginal.Activate
SetzeLupe Selection

End Sub

Der Prozedurcode dient in erster Linie dazu, die Fenster für das Tabellenblatt und den Lupenbereich anzuordnen. Beim Lupenfenster handelt es sich um ein neues Fenster der aktuellen Mappe, das oben rechts platziert wird und auf einen Zoomfaktor von 100% eingestellt wird.

Beachten Sie noch die letzte Zeile "SetzeLupe Selection". Damit rufen Sie eine Hilfsprozedur auf, die den im Lupenfenster angezeigten Bereich gleich an die aktuelle Zellmarkierung im normalen Tabellenfenster anpasst.

Darunter fügen Sie die Prozedur ein, die beim Beenden der Klasse ausgeführt wird:

Private Sub Class_Terminate()
objZoomfenster.Close
If Not objAlteAuswahl Is Nothing Then
objAlteAuswahl.Interior.ColorIndex = varZellfarbe
End If
Application.ScreenUpdating = True
End Sub


Die Prozedur schließt das Fenster mit der Blattlupe. Anschließend wird die Hintergrundfarbe der zuletzt markierten Zelle wieder auf ihren ursprünglichen Zustand gesetzt (entsprechende Vorarbeit leistet wiederum die Hilfsprozedur "SetzeLupe"). Und zuletzt aktualisieren Sie die Bildschirmanzeige.

Mit der nächsten Prozedur steuern Sie die Aktualisierung des Lupenfensters. Darin soll immer die Umgebung der im anderen Fenster markierten Zelle angezeigt werden. Der programmiertechnische Aufwand ist erfreulich gering, da Sie auf die eingangs deklarierte Objektvariable zurückgreifen können, die dank "WihtEvents" alle Ereignisse eines "Worksheet"-Objekts (eines Tabellenblatts) zur Verfügung stellt. So lautet die Prozedur für die Lupenaktualisierung:

Private Sub objBlatt_SelectionChange_
(ByVal Target As Range)
SetzeLupe Target
End Sub


Nun fehlt nur noch die schon häufiger herangezogene Hilfsprozedur "SetzeLupe":

Private Sub SetzeLupe(objAuswahl As Range)
Dim intZeile As Integer, intSpalte As Integer

If Not objAlteAuswahl Is Nothing Then
objAlteAuswahl.Interior.ColorIndex = varZellfarbe
End If
Set objAlteAuswahl = objAuswahl.Cells(1, 1)
If ActiveWindow.Caption <> objZoomfenster.Caption Then
varZellfarbe = _
objAuswahl.Cells(1, 1).Interior.ColorIndex
objAuswahl.Cells(1, 1).Interior.ColorIndex = _
CURSORFARBE
intZeile = objAuswahl.Row
intSpalte = objAuswahl.Column
With objZoomfenster
If intZeile > 2 Then
.ScrollRow = intZeile-2
Else
.ScrollRow = 1
End If
If intSpalte > 1 Then
.ScrollColumn = intSpalte-1
Else
.ScrollColumn = 1
End If
End With
Application.ScreenUpdating = True
objAuswahl.Select
End If
End Sub

Die erste If-Abfrage prüft, ob ein Objekt namens "objAlteAuswahl" gesetzt ist. Wenn das der Fall ist, wurde bereits mit dem Lupenfenster gearbeitet. Dann muss bei einer neuen Zellmarkierung die Hintergrundfarbe der vorherigen Zelle wieder hergestellt werden.

Danach speichert die Prozedur die momentane Auswahl in der global verfügbaren Variablen "objAlteAuswahl". Mit der zweiten If-Abfrage stellen Sie fest, ob die Bearbeitung im Original- oder im Lupenfenster erfolgt. Wenn Sie ohnehin in der vergrößerten Darstellung arbeiten, muss die Ansicht nicht weiter angepasst werden. Nur wenn Sie in der Originaltabelle eine neue Zelle markieren, hebt die Prozedur die Auswahl farblich hervor und merkt sich die bisherige Farbzuweisung in der Variablen "varZellfarbe".

Im folgenden With-Block passen Sie mit ScrollRow- und ScrollColumn-Anweisungen den sichtbaren Zellbereich im Lupenfenster an. Damit es nicht zu Fehlern kommt, testen If-Abfragen, ob Sie sich bereits am linken oder oberen Rand der Tabelle befinden. Normalerweise ist die Blattlupe immer so eingestellt, dass zwei Zeilen über und eine Spalte links neben der aktuellen Zelle zu sehen sind. Der Rest der Prozedur bereinigt lediglich die Bildschirmanzeige.

Die Objektklasse für die Lupenfunktion ist damit fertig gestellt. Sie brauchen jetzt nur noch zwei Prozeduren, die die Funktion ein- bzw. ausschalten. Dafür legen Sie mit dem Befehl Einfügen-Modul ein neues Standardmodul an. Füllen Sie das zugehörige Codefenster mit folgenden Zeilen:

Dim objZoom As New clsLupe

Sub ZoomStart()
Set objZoom.objBlatt = ActiveSheet
End Sub

Sub ZoomEnde()
Set objZoom = Nothing
End Sub

Zu Beginn stellen Sie mit einer globalen Objektvariablen einen Verweis auf die "Lupenklasse" her. In der Prozedur "ZoomStart" nutzen Sie die Eigenschaft "objBlatt", um Excel mitzuteilen, welche Ereignisse überwacht werden sollen - hier also die Ereignisse des aktiven Blattes. Wenn Sie die Lupenfunktion nicht mehr benötigen, rufen Sie die Prozedur "ZoomEnde" auf. Sie setzt die Objektvariable auf "Nothing", womit die Klasse terminiert wird.

Beenden Sie den Visual Basic-Editor und speichern Sie die Datei mit dem eben eingefügten Programmcode. In späteren Excel-Sitzungen müssen Sie dann nur dafür sorgen, dass diese Datei geöffnet ist. Anschließend können Sie die Lupenfunktion in jeder anderen Arbeitsmappe nutzen.

Konkret setzen Sie die Lupenfunktion folgendermaßen ein:


Sorgen Sie - wie bereits erwähnt - dafür, dass die Datei mit der "Lupenklasse" geöffnet ist.

Öffnen Sie die Arbeitsmappe, in der Sie die Navigation mit Hilfe der Excel-Lupe vereinfachen wollen. Verringern Sie, wenn das noch nicht der Fall ist, den Zoom-Faktor, damit möglichst viele Zellen sichtbar sind.

Drücken Sie Alt+F8, um das Dialogfeld Makro anzuzeigen. In der Liste verfügbarer Makros finden Sie auch die beiden Prozeduren zum Ein- oder Ausschalten der Lupenfunktion. Doppelklicken Sie je nach Bedarf auf "ZoomStart" oder "ZoomEnde". Damit die Excel-Lupe keinen Fehler verursacht, muss der Blattschutz der aktuellen Tabelle ausgeschaltet sein!

Tipp: Um den Zugriff auf das Lupenfenster zu beschleunigen, richten Sie eine neue Symbolleiste mit zwei Schaltflächen ein, denen Sie die oben genannten Makros zuweisen. Danach steht Ihnen die Blattlupe direkt per Mausklick zur Verfügung.

Öffnungszeiten
Ladengeschäft:
Montag bis Donnerstag
15:00-18:00 Uhr
Freitag
8:30:13:00 Uhr
Samstag
nach Terminvereinbarung

Wir vereinbaren auch
gerne Termine über unsere
Öffnungszeiten hinaus.

Telefon:
06723 889005

Telefax:
06723 889006

E-Mail:
info@tibe.de

Adresse:
Tibe Services
Inhaber: Tim Berlebach
Zangerstraße 22
65375 Oestrich-Winkel /
Ortsteil Hallgarten

Öffentlicher Parkplatz:
Taunusstraße/
Ecke Zangerstraße


 Preisänderungen und Irrtümer bleiben vorbehalten.  Angebot gilt solange Vorrat reicht!

© 1996-2024 Tibe Services Tim Berlebach, Zangerstraße 22, 65375 Oestrich-Winkel,
Tel: 06723 889005, Fax: 06723 889006, E-Mail: info(at)tibe.de, Internet: www.tibe.de