Gleitende Informationen in einer eingefrorenen Zeile (Microsoft Excel)
Bev hat ein Arbeitsblatt mit zwei eingefrorenen Kopfzeilen und einer eingefrorenen Spalte. Sie kann dann Woche für Woche über die Seite scrollen und Daten hinzufügen. Namen und Zwischensummen sind links festgelegt, Wochentage oben. Vor allem in der ersten eingefrorenen Reihe hat Bev einen schönen, ausgefallenen Titel, der die Arbeitsmappe beschreibt. Sie sucht nach einer Möglichkeit, ihren Titel (den in der ersten Zeile) „schweben“ zu lassen, damit der Titel beim Scrollen über die Seite nicht vom Rand des sichtbaren Arbeitsblatts verschwindet.
Der einfachste Weg, dies zu tun, besteht darin, sicherzustellen, dass sich der Titel in Zelle A1 befindet.
Da Sie eine Spalte und zwei Zeilen eingefroren haben, wird beim Scrollen zur rechten Zelle A1, die den Titel enthält, immer auf dem Bildschirm angezeigt. (Dies funktioniert nur zufriedenstellend, wenn der gesamte Titel in Zelle A1 passt, ohne in Zelle B1 oder darüber hinaus „überzulaufen“.)
Wenn Sie mit Ihrem Titel etwas ausgefalleneres möchten, müssen Sie ein wenig mit Textfeldern und Makros arbeiten. Wenn Sie den Titel in ein Textfeld in der ersten Zeile einfügen, können Sie mithilfe einiger Makros sicherstellen, dass das Textfeld immer auf dem Bildschirm in dieser Zeile zentriert ist.
Nehmen wir für dieses Beispiel an, dass das Textfeld mit dem Titel „TitleTextBox“ heißt. Wenn Sie im Arbeitsblatt nach links und rechts scrollen, kann ein Makro automatisch überprüfen, ob der linke Rand des Textfelds immer dem linken Rand des sichtbaren Bildschirmbereichs entspricht. Der folgende Code muss zum Arbeitsblattcode für das Arbeitsblatt mit dem Textfeld hinzugefügt werden:
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range) Me.Shapes("TitleTextBox").Left = ActiveWindow.VisibleRange.Left End Sub
Dieses Makro wird jedes Mal ausgeführt, wenn die Auswahl im Arbeitsblatt geändert wird, da es Teil des Arbeitsblattcodes ist. Wenn Sie also die Pfeiltasten verwenden, um sich nach links oder rechts zu bewegen, die Tabulatortasten verwenden oder eine Zelle mit der Maus auswählen, wird das Makro ausgeführt und es wird sichergestellt, dass die linken Ränder des Textfelds und der sichtbare Bereich immer übereinstimmen.
Wenn dieses Makro nicht aktiviert wird, scrollen Sie mit der horizontalen Bildlaufleiste am unteren Bildschirmrand nach links und rechts. Es gibt kein „Bildlaufereignis“, das automatisch ausgelöst wird, wenn die Bildlaufleisten verwendet werden. Bis eine Auswahl irgendwo innerhalb des neuen sichtbaren Bereichs getroffen wird, wodurch das SelectionChange-Ereignis ausgelöst wird, wird die Position des Textfelds nicht verschoben.
Die einzige Problemumgehung für diese Einschränkung besteht darin, die Timer-Funktionen von Visual Basic zu verwenden, um das Textfeld regelmäßig zu aktualisieren. Der folgende Code führt dies jede Sekunde aus, Sie können ihn jedoch so anpassen, dass er bei Bedarf weniger häufig ausgeführt wird.
Dieser Code wird einem regulären VBA-Modul hinzugefügt:
Sub UpdateTB() If ActiveSheet.Name = "Sheet1" Then ActiveSheet.Shapes("TitleTextBox").Left = _ ActiveWindow.VisibleRange.Left End If Application.OnTime Now + TimeSerial(0, 0, 1), "UpdateTB" End Sub
Und dies wird dem Arbeitsmappenobjekt hinzugefügt, um den Timer beim ersten Öffnen der Arbeitsmappe zu starten:
Private Sub Workbook_Open() UpdateTB End Sub
Wenn Sie den Timer-basierten Ansatz zum Positionieren des Textfelds verwenden, müssen Sie nicht den Ansatz verwenden, der mit dem SelectionChange-Ereignis verknüpft ist. Die Timer-Version passt den Titel einfach nach jedem Intervall an.
Neben der Trägheit, die durch den ausgeführten Code entsteht, hat jede makrobasierte Technik einen zusätzlichen „Nachteil“: Jedes Mal, wenn der Code ausgeführt wird, wird der „Rückgängig-Stapel“ gelöscht. Dies bedeutet, dass Sie Änderungen, die Sie an der Arbeitsmappe vornehmen, bei Bedarf nicht „rückgängig machen“ können.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (10260) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: