Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1632to1636
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen ein und ausblenden, die 2te

Zeilen ein und ausblenden, die 2te
09.07.2018 10:59:32
EasyD
Hallo zusammen,
Daniel hatte mir letztens schon sehr geholfen bei meinem Problem gewisse Zeilen ein und auszublenden:
Ich habe eine intelligente Tabelle (Spalte B bis S) mit Summenzeilen. Zwischen diesen Summenzeilen ist ein gewisser Bereich an Zeilen der ein- und ausgeblendet werden soll. In Spalte B steht die Bezeichnung der Summe, Spalte A ist eine Hilfsspalte die in jeder dieser Summenzeilen eine "1" hat.
Das Blatt ist geschützt, die Zellen nicht auswählbar - außer die "1er" Zellen in Spalte A (damit man diese Zelle jeweils für den Doppelklick auswählen kann).
Doppelklick auf die Zelle mit der "1" soll den Bereich bis zur nächsten Summenzeile ein und wieder ausblenden. Das läuft grundsätzlich prima, jedoch musste ich die Problematik nochmal um 2 Bedingungen erweitern:
1.
Der Bereich soll gar nicht eingeblendet werden (mit Hinweismeldung) wenn in Spalte B in diesem Zwischenbereich keine Werte erfasst sind - funktioniert (siehe MsgBox).
2.
WENN in Spalte B Werte erfasst sind, sollen nur die Zeilen eingeblendet werden, die in Spalte B einen Wert haben - denn die Zwischenbereiche sind jeweils 100 Zeilen lang, die aber in den wenigsten Fällen auch allesamt ausgefüllt sind.
Nach einigem Basteln habe ich folgendes Ergebnis:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'per Doppelklick in Spalte B die Zeilen zwischen den Positionen ein und ausblenden für  _
Ertragsplanung mit IST-Daten
Dim Zelle As Range
ActiveSheet.Unprotect
Application.ScreenUpdating = False
'geklickte Position - Bereich unterhalb bis zur nächsten Position aufmachen
If Target.Value = 1 Then ' "1" steht in Spate A neben jeder Positionssumme
Set Zelle = Target.EntireColumn.Find(what:="1", _
after:=Target, lookat:=xlPart, searchdirection:=xlNext)
If Zelle.Row  ""
Cancel = True
End If
'Nullfilter auf Spalte B setzen - bezieht leider die GANZE Tabelle ein, nicht nur den Bereich  _
unterhalb Target
If Range(Target.Offset(1, 0), Zelle.Offset(-1, 0)).EntireRow.Hidden = True Then
Else
If WorksheetFunction.CountA(Range(Target.Offset(1, 1), Zelle.Offset(-1, 1))) = 0 Then 'wenn  _
keine Werte in Spalte B in der Position enthalten sind:
MsgBox "In dieser Position wurden keine Werte eingesteuert!", vbOKOnly, "nicht möglich!"
Range(Target.Offset(1, 0), Zelle.Offset(-1, 0)).EntireRow.Hidden = True 'die vorher  _
eingeblendeten Zeilen wieder ausblenden
Else 'Nullzeilen in Spalte B raus filtern
ActiveSheet.ListObjects("Tab_Ertrag11").Range.AutoFilter Field:=1, Criteria1 _
:="" 'xxxxxxxxxx die Alternative - hier NICHT mit Autofilter arbeiten  _
sondern nur Zeilen ausblenden, die NICHT Null haben
End If
End If
Application.ScreenUpdating = True
ActiveSheet.Protect
End Sub
Mein Problem ist, dass ich die Nullzeilen mit dem Autofilter versuche weg zu machen. Der Autofilter wirkt sich aber natürlich auf die gesamte Tabelle aus und filtert mir auch in anderen Bereichen als den eben doppelt geklickten wieder Zeilen mit Werten in Spalte B ein.
Entweder, man kann dem Autofilter sagen dass er sich nur auf den soeben doppelt geklickten Bereich beziehen kann oder (und das wäre wahrscheinlich die richtige Lösung)
Man blendet von vornherein nur die Zeilen mit Werten in Spalte B ein anstatt den ganzen Bereich - und da scheitere ich leider...
Hat nochmal jemand Lust?
Danke!

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilen ein und ausblenden, die 2te
10.07.2018 08:27:44
EasyD
Hhmm...
zu banal?
Ich habe versucht, nach:
If Zelle.Row Cells.SpecialCells(xlCellTypeLastCell).EntireRow)
Range(Target.Offset(1, 0), Zelle.Offset(-1, 0)).EntireRow.Hidden = _
Not Target.Offset(1, 0).EntireRow.Hidden
Noch eine weitere "if" einzubauen unter Verwendung einer Variable
wenn Spalte B = 0
-> funktioniert nicht (Fehler - "If ohne End If") - und natürlich hatte mein If auch ein End
Es wäre auch denkbar, in die Hilfspalte A mittels Formel einen Wert einzubauen wenn B="" um damit dann festzulegen, welche Zeilen nun tatsächlich ausgeblendet werden sollen....
Gibt es noch Ideen?
Anzeige

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige