Registriert seit: 23.04.2020
Version(en): Microsoft 365 Business
11.05.2020, 16:27
(Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2020, 16:27 von ExcelMania.)
Hallo,
ich würde gerne die erste Zeile meines Arbeitsblattes fixieren. Wenn ich im Arbeitsblatt weiter runter scrolle, soll diese Fixierung bis zu einer bestimmten Zeile gelten.
Ab Zeile 87 soll nicht mehr die erste, sondern eben Zeile 87 fixiert werden.
Ist das irgendwie möglich?
Viele Grüße
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi,
nein, das ist automatisch nicht möglich - zumindest nicht mit Bordmitteln. Du musst die erste Fixierung aufheben und ab Zeile 87 neu fixieren.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 23.04.2020
Version(en): Microsoft 365 Business
Hi Günther,
vielen Dank schon mal für deine Rückmeldung.
Wäre das mit VBA möglich?
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
11.05.2020, 16:48
(Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2020, 16:48 von WillWissen.)
Hi, da müsstest du auf die VBA-Spezies warten - hierbei kann ich nicht helfen. Edit: Ich könnte mir vorstellen, dass es mit einem Makro klappt. Zum Testen habe ich eines aufgezeichnet (Zeile 1 war fixiert, wurde aufgehoben und Zeile 20 wieder fixiert). Code: Option Explicit
Sub ZeilenFixieren() ' ' ZeilenFixieren Makro '
' Rows("20:20").Select ActiveWindow.FreezePanes = False ActiveWindow.FreezePanes = True End Sub
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 23.04.2020
Version(en): Microsoft 365 Business
Hi,
danke! Aber damit fixiere ich alle Zeilen von 1 bis 20. Die Idee war ja, Zeile 1 zu fixieren. Wenn ich runter scrolle bleibt die erste Zeile immer oben.
Sobald ich bei Zeile 87 ankomme (mit "ankommen" meine ich, dass Zeile 87 im Fenster direkt unter der Zeile 1 erscheint), soll die Fixierung für Zeile 1 aufgehoben und stattdessen Zeile 87 fixiert werden. Wichtig wäre, nur die Zeile 87 zu fixieren, da andernfalls (Fixierung der Zeilen 1 - 87) immer das gesamte Fenster fixiert bleiben wird (da selbst bei geringem Zoom-Faktor nur ca. 50 Zeilen auf einmal im Fenster zu sehen sind).
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
11.05.2020, 19:25
(Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2020, 19:26 von Kuwer.)
Hallo, ich habe den Code von hier entsprechend geändert: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static lngZeile As Long Dim lngT As Long lngT = Application.RoundDown(Target.Cells(1).Row / 86, 0) * 86 + 1 If lngT <> lngZeile Then lngZeile = lngT ActiveWindow.FreezePanes = False Application.Goto Rows(lngT), True Rows(lngT + 1).Select ActiveWindow.FreezePanes = True Target.Select End If End Sub Gruß Uwe
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hallo,
das war ja nur als Hinweis und Beispiel gedacht. Ich schrieb bereits, dass hier die VBA-Spezies ranmüssen.
Gruß Günter Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen. angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 23.04.2020
Version(en): Microsoft 365 Business
Hi Uwe,
cool, das geht auf jeden Fall schon in die richtige Richtung! Wenn ich den anderen Thread richtig verstehe, funktioniert das allerdings nur, wenn man auch in die entsprechenden Zellen klickt bzw. mit den Pfeiltasten "runter scrollt".
Gibt es irgendeine Möglichkeit, dies auch einfach für das Scrollen mit der Maus zuzulassen (mit dem Mausrad oder Nutzung des Navigationsbalken auf der rechten Seite), ohne dass man in die einzelnen Zellen klicken muss?
Mit deinem aktuellen Code funktioniert es durch "runter scrollen" mit den Pfeiltasten. Wenn ich aber wieder hoch scrollen möchte, und höher als Zeile 87 gehe, wird automatisch Zeile 1 - 24 fixiert (anstatt wieder nur die Zeile 1).
Hast du eine Idee, wie man das umgehen könnte?
Vielen Dank schon mal für deine Hilfe und viele Grüße, David
Registriert seit: 26.07.2017
Version(en): 365
Hi, das dürfte richtig „an's Eingemachte” gehen, wie man so schön sagt, denn mit den VBA-„Bordmitteln” geht das nicht. Ein Beispiel zeigt dieser Link, wobei ich ehrlich zugeben muss, dass das meinen Horizont übersteigt.
Herzliche Grüße aus dem Rheinland Jörg
[Windows 10, Microsoft 365]
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo David, ich halte mich (auch) nur an die Bordmittel (Select-Event). Teste mal das: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Static lngZeile As Long Dim lngT As Long On Error Resume Next lngT = ActiveWindow.VisibleRange.Row If lngT > 86 And lngZeile <> 87 Then lngZeile = 87 Application.EnableEvents = False ActiveWindow.FreezePanes = False Application.Goto Cells(87, 1), True ActiveCell.Offset(1).Select ActiveWindow.FreezePanes = True Target.Select Application.EnableEvents = True ElseIf Target.Row < 87 And lngZeile <> 1 Then lngZeile = 1 Application.EnableEvents = False ActiveWindow.FreezePanes = False Application.Goto Cells(1, 1), True ActiveCell.Offset(1).Select ActiveWindow.FreezePanes = True Application.Intersect(Rows(1), Target.EntireColumn).Select Application.EnableEvents = True End If End Sub Gruß Uwe
|