Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1500to1504
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

automatisches Ausblenden von Zeilen beim Start

automatisches Ausblenden von Zeilen beim Start
22.06.2016 17:37:11
Zeilen
Hallo zusammen,
ich benötige mal wieder eure Hilfe.
Ich habe eine Exceldatei mit diversen Datensätzen (täglich wachsende Anzahl von hinzugefügten Zeilen --> bis maximal 5000 Zeilen.
In Spalte "H" wird bei der Bearbeitung der Liste ein Wert eingetragen. Dieser kann "ja" lauten oder "nein". Bedingt durch diesen Wert soll beim nächsten öffnen der Datei alle Zeilen bei denen dieser Wert "nein" lautet ausgeblendet werden.
aktuell löse ich das mit folgendem Skript:
Sub Zeilen_ausblenden()
Application.ScreenUpdating = False
Set CellRange = Range("H15:H5000")
For Each Cell In CellRange
Cell.EntireRow.Hidden = (Cell.Value = "nein")
Next
Application.ScreenUpdating = True
End Sub

Das funktioniert auch sehr gut, bewirkt aber, dass auf einem langsamen Rechner der Start der Datei ewig dauert.
Kann man dies optimieren?
(noch ein Hinweis, es müssen jedes mal alle Zeilen geprüft werden, weil eine einmal ausgeblendete Zeile auch wieder eingeblendet werden kann durch den Benutzer. Das soll auch so bleiben. Ich kann also nicht den einmal gespeicherten Stand der ausgebelndeten Zeilen auslesen und verarbeiten. Auch kann es vorkommen, dass Mitten in den Datensätzen neue Zeilen eingefügt werden, die ebenfalls beim nächsten Starten mit geprüft und ausgeblendet werden.
Ich hoffe es hat jemand eine Idee hierzu. Ich danke wie immer schon im Voraus. Eure Hilfe hier ist immer Top!!!

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatisches Ausblenden von Zeilen beim Start
22.06.2016 17:42:40
Zeilen
Hi Christian
Vielleicht zu banal, aber ich würde einfach den Autofilter nehmen. Müsstest mal testen aber ich denke es geht schneller.
cu
Chris

AW: automatisches Ausblenden von Zeilen beim Start
22.06.2016 17:57:12
Zeilen
Hi
wie schon gesagt, Autofilter wäre eine Möglichkeit.
ansosnten sollte man nicht jede Zeile ausblenden, sondern wenn möglich alle gleichzeitig auf einmal.
das geht beispielsweise so:
with Range("H15:H5000")
.EntireRow.Hidden = false
.Replace "nein", 1, xlwhole
if Worksheetfunction.Sum(.cells) > 0 then
With .SpecialCells(xlcelltypeconstants, 1)
.Value = "nein"
.EntireRow.Hidden = True
End With
end if
End With
der Trick hierbei ist, das "nein" erstmal durch eine Zahl zu ersetzen, weil man in Excel die Selektion auf alle Zellen mit dem gleichen Wertetyp (Text, Zahl, Wahrheitswert, Fehler) setzen kann und so alle Zellen mit Zahl gezielt auswählen und ausblenden kann.
Zahl deswegen, weil man über die Summe am einfachsten feststellen kann, ob überhaupt Zellen infrage kommen.
Gruß Daniel

Anzeige
AW: automatisches Ausblenden von Zeilen beim Start
22.06.2016 19:03:53
Zeilen
Hallo,
ich danke euch Beiden für die Antworten.
Daniel, deine Variante teste ich gleich morgen. Charmant daran ist, dass das "nein" über Formeln eingesteuert wird. Also ändere ich die Formel, sodass in der Spalte H "0" oder "1" steht. Das sit einfach. dann Spare ich zwei Codezeilen. Was dort in der Spalte steht ist quasi irrelevant, da die Angabe nur für diese "Ausblenden"-Funktion genutzt wird.
Ich bin gespannt :)

AW: automatisches Ausblenden von Zeilen beim Start
23.06.2016 08:40:50
Zeilen
Hi
Beachte, dass du dann xlcelltypeconstants in xlcelltypeformulas abändern musst.
Auch muss die Formel dann anstelle von "nein" die Zahl 1 ausgeben und nicht den Text "1".
Der Alternativwert muss jedoch ein Text sein ("" ist auch ein Text)
Gruß Daniel

Anzeige
AW: automatisches Ausblenden von Zeilen beim Start
23.06.2016 09:20:48
Zeilen
Hallo Daniel,
das klappt so leider nicht mit deinem Code.
in der Spalte H ergibt sich das "nein" aus einer Formel. Sprich in der Zelle steht eine Formel, _ dessen Ergebnis "nein" ist -->

WENN(B712="";"";WENN((F712="");"ja, relevant";(WENN(ISTFEHLER(SVERWEIS(F712;'relevante Daten'!$D$3:$E$10;1;0));"nein";"ja"))))

AW: automatisches Ausblenden von Zeilen beim Start
23.06.2016 11:33:07
Zeilen
Hi
mach doch einfach, was ich sage.
Ersetze in der Formel das "nein" durch 1 (keine Anführungszeichen um die 1 !!!!)
und dann musst du im SpecialCells halt angeben, dass es in den Formeln und nicht in den Festwerten suchen soll.
das ganze Erstetzen von "nein" durch 1 und wieder zurück kann dann entfallen.
sieht dann so aus (nur für den fall, dass du mit meinen Beschreibungen nichts anfangen kannst):
with Range("H15:H5000")
.EntireRow.Hidden = false
if Worksheetfunction.Sum(.cells) > 0 then
.SpecialCells(xlcelltypeformulas, 1).EntireRow.Hidden = True
end if
End With
gruß Daniel

Anzeige
AW: automatisches Ausblenden von Zeilen beim Start
23.06.2016 12:54:02
Zeilen
Hallo Daniel,
es wäre zu einfach, wenn ich einfach nur das mache was du schreibst :)
Sorry, die Variante hatte ich natürlich nicht getestet. Is ja auch schon mächtig warm heute.Jetzt getestet -- und siehe da, es funktioniert :)
Ich danke dir recht herzlich.

308 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige