Tipps & Tricks
19.11.2015, 07:00 Uhr
Excel: Zeile aufklappen, in der sich der Cursor befindet
In Spalte B befinden sich mehrzeilige Einträge. Sie möchten, dass die Zellen nur dann den ganzen Inhalt zeigen, wenn der Cursor drauf steht.
Angenommen, Ihre Excel-Tabelle enthält in einer Spalte (z.B. Spalte B) mehrzeilige Einträge, in denen Sie den Zeilenwechsel jeweils mit Alt+Enter vollzogen haben. Es können zwischen zwei und zehn Zeilen sein. Excel passt die Zeilenhöhe automatisch an. Nun wollen Sie aber keine zufällig verteilten höheren und niedrigeren Zeilen. Excel soll stattdessen die Zeilenhöhe nur anpassen, während der Cursor sich in der betroffenen Zelle befindet. Sobald Sie die Zelle wieder verlassen, soll die Zeilenhöhe wieder auf einen bestimmten Wert zurückfallen.
Bilder sagen manchmal mehr als tausend Worte. Wenn sich der Cursor in der Zelle B1 befindet, soll das etwa so aussehen:
Sobald Sie die Zelle verlassen – und zum Beispiel den Cursor in Zelle B2 bewegen, soll es die erste Zeile wieder auf eine Standardgrösse einklappen und stattdessen Zelle B2 vergrössern – wieder nur so weit, dass alle Einträge sichtbar sind.
Lösung: Das geht mit einem cleveren Makro, das einer unseren Forumsnutzer ausgetüftelt hat. Speichern Sie aber Ihre Datei via Datei/Speichern unter/Durchsuchen zuerst unter dem Dateityp «*.xlsm» (Excel-Arbeitsmappe mit Makros). Sonst führt Excel das Makro später nicht aus.
Öffnen Sie den VisualBasic Editor, indem Sie Alt+F11 drücken. Klappen Sie in der linken Fensterhälfte allenfalls «Microsoft Excel Objekte» auf und doppelklicken Sie den Namen der betroffenen Tabelle (z.B. «Tabelle1»). Nun kopieren Sie den folgenden Makro-Code ins grosse leere (weisse) Feld. Damit wird sich das Makro später ausdrücklich in jener Tabelle anwenden.
Information
Dim lzadr ' Adresse der zuletzt angewählten ZelleConst ZHoehe = 28.5 ' Höhe einer "normalen" ZeilePrivate Sub Worksheet_SelectionChange(ByVal Target As Range)On Error Resume NextRange(lzadr).RowHeight = ZHoehezadr = Selection.AddressIf Target.Column = 2 Then Selection.EntireRow.AutoFitEnd IfIf Selection.RowHeight < ZHoehe Then Selection.RowHeight = ZHoeheEnd Iflzadr = zadrEnd Sub
Der Code sieht im VisualBasic-Editor etwa so aus:
Zusatzinformationen: Excel blendet nach den ersten beiden Zeilen im Makrocode automatisch eine Linie ein. Im Makro wird mit «If Target.Column = 2» die Spalte B adressiert – und zwar ausschliesslich. Passen Sie diese noch an die Bedürfnisse an. Ohne diese Beschränkung wäre das Arbeiten in anderen Zellen etwas umständlich. Bei «ZHoehe» ist die «eingeklappte» Zelle gemeint. Hier ist ein Wert von 28.5 Punkten gesetzt. Auch den können Sie anpassen. Weitere Möglichkeiten zu diesem Makro finden Sie im in der folgenden Klammer verlinkten Forumsbeitrag. (PCtipp-Forum)
Kommentare
Es sind keine Kommentare vorhanden.