Beschreibe(evtl. mit Datei) bitte noch mal was mit der/den Spalten bei Ein und Ausblenden passieren soll. Ein generelles Verschieben der Spalte nach links oder....? Das "!" steht dann in Zeile 1 oder?
Bisher ist der Code ja so, dass beim Klicken dann alle Spalten und Zeilen in denen etwas geschrieben steht eingeblendet bleiben. Nun sollen zusätzlich noch jene Spalten in denen ein "!" steht nicht nur eingeblendet bleiben sondern auch noch links fixiert werden. (Siehe Bild).
Das würde ein generelles verschieben der Spalten und Zeilen bedeuten. Ein zurück an alte Stelle ist nicht möglich. Hast du eventuelle Auswirkungen der Umordnung auf Formel oder anderen Code bedacht?
25.05.2022, 14:11 (Dieser Beitrag wurde zuletzt bearbeitet: 25.05.2022, 14:13 von HansMartin888.)
Hallo Elex,
ja du hast recht. Das Gute ist, dass die Spalten die ich bei Klick fixiert haben will, sich ganz links nacheinander befinden und es ist keine Spalte mit "x" dazwischen.
Also der Code sollte einfach nur die leeren Spalten/Zeilen ausblenden und die gefüllten Spalten eingeblendet lassen (wie es dein bisheriger Code tut), und dann eben noch die Spalten mit "!" links fixieren. Voraussetzung: Ich müsste dann immer nur schauen dass VOR bzw. ZWISCHEN den Spalten mit "!" keine Spalten mit "x" stehen. Sonst würde wie du sagst eine Verschiebung stattfinden.
25.05.2022, 15:41 (Dieser Beitrag wurde zuletzt bearbeitet: 25.05.2022, 15:43 von HansMartin888.)
Hi Elex,
da tut sich bei mir nichts. Ich hab dir jetzt mal die Datei angehängt wie sie aufgebaut ist. Die ersten 3 Spalten sind immer fixiert, danach ist alles scrollbar. Bei Klick möchte ich, dass alle Spalten wo was steht NICHT ausgeblendet werden (wie es dein bisheriger Code perfekt umsetzt), und nun die Spalten mit "!" (Spalte F-I) zusätzlich noch links an die bereits fixierten Spalten rangeheftet werden, sodass sie auch fixiert sind. Sorry für die Verwirrung.
25.05.2022, 19:34 (Dieser Beitrag wurde zuletzt bearbeitet: 25.05.2022, 19:35 von HansMartin888.)
Ja am besten wir nehmen #16 als Grundlage, so sieht die Datei letztlich aus.
Der Code sollte also die leeren Spalten ausblenden, die Spalten mit "x" (nicht leer) eingeblendet lassen, und die Spalten mit "!" NACH Spalte C anhängen (die ersten 3 Spalten benötige ich immer sichtbar). Ich muss dann immer drauf achten dass ich wie gesagt links von der ersten "!"-Spalte oder zwischen den "!"-Spalten keine Spalten mit "x" habe, da sonst Spalten verschoben werden. So hab ich s jetzt verstanden ; )
25.05.2022, 20:10 (Dieser Beitrag wurde zuletzt bearbeitet: 25.05.2022, 20:10 von Elex.)
Ok.
Test die Geschichte mal.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Address = "$A$1" Then Dim PosZ As Long, PosS As Long ActiveWindow.FreezePanes = False Cancel = True On Error Resume Next If Target.Value = "Ein" Then Target.Value = "Aus" Cells.Columns.Hidden = False Cells.Rows.Hidden = False Else Target.Value = "Ein" Rows(1).SpecialCells(xlCellTypeBlanks).Columns.Hidden = True Columns(1).SpecialCells(xlCellTypeBlanks).Rows.Hidden = True End If
PosZ = Columns(1).Find("!", Cells(1), xlValues, xlWhole, , xlPrevious).Row + 1 PosZ = WorksheetFunction.Max(2, PosZ) PosS = Rows(1).Find("!", Cells(1), xlValues, xlWhole, , xlPrevious).Column + 1 PosS = WorksheetFunction.Max(4, PosS) Cells(PosZ, PosS).Select ActiveWindow.FreezePanes = True End If End Sub
Gruß Elex
Folgende(r) 1 Nutzer sagt Danke an Elex für diesen Beitrag:1 Nutzer sagt Danke an Elex für diesen Beitrag 28 • HansMartin888
habs gerade getestet, folgende Dinge sind mir aufgefallen: Wenn man wieder klickt, geht alles zwar wieder in seine ursprüngliche Stellung zurück, jedoch bleibt die Anzahl der Spalten die vorher für die "!"-Spalten-Fixierung benötigt wurden, links fixiert. Die Fixierung müsste sich jedoch wieder lösen (nicht aber die ersten 3 Spalten und Zeilen, die ja grundsätzlich immer fixiert bleiben). Auch sehr viele Zeilen (statt nur der ersten 3) bleiben fixiert obwohl ich wieder alles eingeblendet habe.