Excel VBA Tutorial: Fenster fixieren (Freeze Panes)

Melden

Hier ist ein ausführliches Tutorial, wie du in Excel mithilfe von VBA Fensterbereiche fixierst (Freeze Panes).

In Excel ist die Funktion „Fenster fixieren“ essenziell, um Überschriften oder wichtige Spalten beim Scrollen immer im Blick zu behalten. Mit VBA lässt sich dieser Vorgang automatisieren.


1. Die Grundlagen

Der Befehl in VBA lautet:
ActiveWindow.FreezePanes = True

Wichtig: VBA fixiert die Bereiche immer basierend auf der aktuell ausgewählten Zelle oder den Eigenschaften SplitRow und SplitColumn. Alles, was sich oberhalb und links der Auswahl befindet, wird fixiert.


2. Vorbereitung: Den VBA-Editor öffnen

  1. Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Gehe auf Einfügen > Modul.
  3. Kopiere den gewünschten Code in das neue Modul.

3. Praktische Code-Beispiele

A. Die oberste Zeile fixieren

Dies ist der häufigste Anwendungsfall. Wir wählen die Zelle A2 aus, damit die erste Zeile fixiert wird.

Sub ErsteZeileFixieren()
    ' Sicherstellen, dass wir im richtigen Fenster sind
    ActiveWindow.FreezePanes = False ' Zuerst bestehende Fixierung aufheben

    Range("A2").Select
    ActiveWindow.FreezePanes = True
End Sub

B. Die erste Spalte fixieren

Hierfür wählen wir die Zelle B1 aus.

Sub ErsteSpalteFixieren()
    ActiveWindow.FreezePanes = False

    Range("B1").Select
    ActiveWindow.FreezePanes = True
End Sub

C. Zeilen und Spalten gleichzeitig fixieren

Wenn du zum Beispiel die erste Zeile und die erste Spalte fixieren möchtest, musst du die Zelle B2 auswählen.

Sub ZeileUndSpalteFixieren()
    ActiveWindow.FreezePanes = False

    ' Fixiert alles oberhalb von Zeile 2 und links von Spalte B
    Range("B2").Select
    ActiveWindow.FreezePanes = True
End Sub

4. Die professionelle Methode (ohne .Select)

Das Verwenden von .Select verlangsamt den Code. Mit den Eigenschaften SplitColumn und SplitRow kannst du präziser arbeiten:

Sub FixierenProfi()
    With ActiveWindow
        .FreezePanes = False ' Bestehende Fixierung lösen
        .SplitColumn = 1     ' Fixiert die erste Spalte
        .SplitRow = 1        ' Fixiert die erste Zeile
        .FreezePanes = True
    End With
End Sub

Hinweis: SplitRow = 1 bedeutet, dass 1 Zeile fixiert wird.


5. Fixierung aufheben

Um alle Fixierungen in einem Tabellenblatt zu entfernen, nutzt du diesen kurzen Code:

Sub FixierungAufheben()
    ActiveWindow.FreezePanes = False
End Sub

6. Tipps für die Anwendung

  1. Tabellenblatt aktivieren: Stelle sicher, dass das richtige Tabellenblatt aktiv ist, bevor der Befehl ausgeführt wird (Worksheets("Name").Activate).
  2. Scroll-Position: Manchmal ist es hilfreich, die Ansicht vorher zu "nullen", damit die Fixierung an der richtigen Stelle greift:
    ActiveWindow.ScrollRow = 1
    ActiveWindow.ScrollColumn = 1
  3. ScreenUpdating: Wenn du viele Tabellenblätter bearbeitest, schalte das Flackern aus:
    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True

Zusammenfassung

  • ActiveWindow.FreezePanes = True aktiviert die Fixierung.
  • Die Position wird durch die aktuelle Zellenauswahl oder durch SplitRow/SplitColumn bestimmt.
  • Vor einer neuen Fixierung sollte die alte mit False aufgehoben werden.
0