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

Ausgeblendete Zeilen mit VBA einblenden

Ausgeblendete Zeilen mit VBA einblenden
03.01.2023 10:58:23
Tobias
Hallo zusammen,
ich habe folgendes Anliegen. Mit dem nachfolgenden Makro werden in einer Excel Datei alle Zeilen mit dem Datum älter als heute ausgeblendet. Das funktioniert auch tadellos.
Nun ist das Problem, dass in der Zukunft liegende Zellen, in denen Zeilen miteinander verbunden sind, ebenfalls ausgeblendet werden. Kann ich dies irgendwie umgehen? Ich habe nun des Öfteren gelesen, dass verbundene Zellen nicht mit Makros harmonisieren. Vielleicht gibt es dennoch eine Möglichkeit.
Leider kann ich auch keine Auto-Filter Funktion nutzen, da ich zwischendurch Zeilen mit Text habe und die mir dann ebenfalls rausgefiltert / ausgeblendet werden.
Hier der aktuelle Code:

Private Sub Workbook_Open()
Dim lR%, i%
lR = Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For i = lR To 1 Step -1
dat = Date
If Range("a" & i).Value 

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausgeblendete Zeilen mit VBA einblenden
03.01.2023 12:15:58
Yal
Hallo Tobias,
es gibt immer 3 "Ebenen": die Daten, deren Darstellung und deren Verarbeitung. Man sollte diese 3 immer voneinander trennen, aber Excel ist deshalb so beliebt, weil genau die Vermischung erlaubt wird.
Kurz gesagt: Zellen zu verbinden ist etwas für die Darstellung, ist aber für eine sauber strukturierte Verarbeitung eine kaum heilbare Krankheit.
Durch Hintergrundfarben und Rahmen kannst Du bringst dieselbe Ergebnis erzielen, als Zeiten zu verbinden. Schaue auch "über Zellen zentrieren".
So vermeidest Du die Schwierigkeiten, die Zellen verbinden reinbringen.
VG
Yal
Anzeige
AW: Ausgeblendete Zeilen mit VBA einblenden
03.01.2023 12:40:00
Daniel
Hi
Makros harmonisieren durchaus mit verbundenen Zellen.
Man muss nur wissen, das man verbundene Zellen hat und dies in der Programmierung entsprechend berücksichtigen.
In deinem Fall könnte es beispielsweise hilfreich sein, die Zeile zuerst zu selektieren, bevor du sie ausblendest.
Bei der Selektion einer Zeile erweitert Excel nämlich den Zellbereich automatisch auf alle betroffenen Zeilen, wenn in der selektierten Zeile ein Zellverbund über mehrere Zeilen vorhanden ist:
Es wird zwar in der Regel davon abgeraten, in VBA Zellbereiche zuerst zu selektieren und dann die Selektion zu bearbeiten, weil das meisten nicht notwendig ist und viele Nachteile hat (Bildschirmflackern, langsamere Abarbeitung des Makros, längerer Code mit mehr Zeilen usw), aber hier hat das Selektieren eine Funktion, die für dich in diesem Fall nützlich ist.
und noch ein kleiner Tipp:
versuche alles, was sich innerhalb einer Schleife nicht ändert, außerhalb der Schleife durchzuführen.
Die wiederholte Ausführung kostet nur Zeit. (auch wenn man es meistens nicht merkt, aber hier gehts ums prinzip).
Da sich das Datum über den Verlauf der Schleife nicht ändern wird, kann man diese Zuweisung (dat = Date) vorher machen.
Innerhalb wäre nur sinnvoll, wenn die Schleife über Mitternacht läuft und nach Mitternacht schon mit dem neuen Datum gearbeitet werden muss und nicht mehr mit dem alten.
hier der Code als ganzes:

 Private Sub Workbook_Open()
Dim lR%, i%
lR = Cells(Rows.Count, 1).End(xlUp).Row
dat = Date
Application.ScreenUpdating = False
For i = lR To 1 Step -1
If Range("a" & i).Value 
Gruß Daniel
Anzeige
AW: Ausgeblendete Zeilen mit VBA einblenden
03.01.2023 13:50:24
Tobias
Erst einmal vielen Dank für eure zT Ausführlichen Antworten. Leider ist bei deinem Ergebnis Daniel nun folgendes passiert. Die verbunden Zeilen wurden alle ausgeblendet.
Ich habe zur Veranschaulichung mal drei Bilder beigefügt. Beide Makros, sprich mein erstes und das von Daniel , blenden völlig richtigerweise alles vor dem 03.01.2023 aus. Jedoch besteht weiterhin das Problem mit den verbundenen Zellen bei zB der Zeile 17&18.
Man könnte auch zur Not sagen, dass er verbundene Zeilen in der Spalte A überhaupt nicht berücksichtigt und ich diese händisch ausblende.
Mein erstes Makro:
Userbild
Das Makro von Daniel:
Userbild
So soll es werden:
Userbild
Anzeige
AW: Ausgeblendete Zeilen mit VBA einblenden
03.01.2023 15:08:00
Daniel
da fehlt immer noch die Information, wie es vollständig aussieht, welche Zeilen vorhanden sind und was wie verbunden ist.
Bilder sagen mehr als 1000 Worte und eine Beispieldatei sagt oft mehr als 1000 Bilder.
in deiner Schleife müsstest du wahrscheinlich noch angeben, dass bei einer leeren Zelle nichts gemacht werden soll. (das wären dann bei einem Zellverbund "die restlichen Zellen".
wenn du sowas wie "Datum - Datum" in einer Zelle drin stehen hast, dann ist das kein Datum sondern ein Text.
Texte sind immer größer als jede Zahl.
hier müsstest du den Text erstmal teilen und dann den Teiltext in ein Datum wandeln, damit du das mit DATE vergleichen kannst.
Gruß Daniel
Anzeige
AW: Ausgeblendete Zeilen mit VBA einblenden
03.01.2023 15:34:21
Tobias
Erneut danke für deine Antwort. Wenn ich das Ganze richtig verstehen, müsste ich lediglich in das erste Makro den Zusatz einbinden, dass keine leeren Zellen ausgeblendet werden.
Könntest du mir den richtigen Befehl dafür geben? Ich in Makros leider nicht so fit.
AW: Ausgeblendete Zeilen mit VBA einblenden
03.01.2023 15:45:32
Daniel

if range("a1").value  "" then
sowas hast du ja im Prinzip schon programmiert.
Gruß Daniel
AW: Ausgeblendete Zeilen mit VBA einblenden
03.01.2023 16:03:01
Tobias
Aber wie baue ich das in dieses Makro ein?

Private Sub Workbook_Open()
Dim lR%, i%
lR = Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For i = lR To 1 Step -1
dat = Date
If Range("a" & i).Value 

Anzeige
AW: Ausgeblendete Zeilen mit VBA einblenden
03.01.2023 16:30:02
Daniel
Hi
was macht denn dieses Makro?
gehe mal zeilenweise durch und überlege dir, was die jeweilige Programmzeile macht.
vielleicht findest du dann selber raus, wo du das wie einfügen musst.
VBA ist englisch und kein Chinesisch
Gruß Daniel
AW: Ausgeblendete Zeilen mit VBA einblenden
04.01.2023 07:39:02
Tobias
Hey Daniel,
leider kann ich das Makro nicht in Gänze nachvollziehen, denn dazu fehlen mir die Kenntnisse. Ich bin auf dem Gebiet sehr unerfahren. Daher erneut meine Bitte, ob es möglich ist, die vorhergehende Abfolge inklusive dem Einblenden von leeren Zeilen zu ermöglichen. Demnach würde ich meines Erachtens nach eine "Notlösung" bilden, um verbundene Zeilen nicht auszublenden, sondern nur die mit dem älteren Datum.
Danke im Voraus. Viele Grüße!
Anzeige
AW: Ausgeblendete Zeilen mit VBA einblenden
04.01.2023 15:16:11
Daniel
naja, so ganz keine Anhnung kannst du nicht haben, denn irgendwie hast du den Code ja geschrieben.
von alleine zaubert der sich nicht her.
aber seis drum.
erstmal prüfen, ob die zelle leer ist und danach prüfen, ob das Datum kleiner als das aktuelle Datum ist, sieht so aus.

If Range("a" & i).Value  "" Then If Range("a" & i).Value 
wenn man das eine kann, sollte das andere auch kein problem sein.
Gruß Daniel

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige