Registriert seit: 23.04.2020
Version(en): Microsoft 365 Business
11.05.2020, 15:27
(Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2020, 15: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, 15:48
(Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2020, 15: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, 18:25
(Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2020, 18: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
|