Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Leere Zeilen bzw. Spalten ausblenden
Dietmar
Guten Abend zusammen,
habe folgenden Code von Sepp hier im Forum gefunden.
Wie lässt der Code sich ändern, dass Zeilen/Spalten ausgeblendet werden, wenn keine Werte (!) enthalten sind.
Vorliegender Code blendet die Zeilen/Spalten auch aus , wenn Formeln enthalten sind, obwohl keine Werte drinstehen müssen. So z.B. weil eine Bezugsformel auf eine andere Zelle enthalten ist, die aber leer sein kann.
Option Explicit
Dim blnHidden As Boolean

Sub zeilen_spalten_aus_ein()
Dim rng As Range
Dim n As Integer
Set rng = Range("A5:D250")
Application.ScreenUpdating = False
If Not blnHidden Then
blnHidden = True
For n = 1 To rng.Rows.Count
If Application.CountA(rng.Rows(n)) = 0 Then rng.Rows(n).Hidden = blnHidden
Next
For n = 1 To rng.Columns.Count
If Application.CountA(rng.Columns(n)) = 0 Then rng.Columns(n).Hidden = blnHidden
Next
Else
blnHidden = False
rng.Rows.Hidden = blnHidden
rng.Columns.Hidden = blnHidden
End If
Application.ScreenUpdating = True
End Sub

Danke vorab
Dietmar aus Aachen

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Leere Zeilen bzw. Spalten ausblenden
12.11.2009 22:19:00
Gerd
Hallo Dietmar!
Teste mal.
Option Explicit
Dim blnHidden As Boolean
Sub zeilen_spalten_aus_ein2()
Dim rng As Range
Dim n As Integer
On Error Resume Next
Set rng = Range("A5:D250").SpecialCells(xlCellTypeBlanks)
On Error GoTo 0
If Not rng Is Nothing Then
Application.ScreenUpdating = False
If Not blnHidden Then
blnHidden = True
For n = 1 To rng.Rows.Count
If Application.CountA(rng.Rows(n)) = 0 Then rng.Rows(n).Hidden = blnHidden
Next
For n = 1 To rng.Columns.Count
If Application.CountA(rng.Columns(n)) = 0 Then rng.Columns(n).Hidden = blnHidden
Next
Else
blnHidden = False
rng.Rows.Hidden = blnHidden
rng.Columns.Hidden = blnHidden
End If
Application.ScreenUpdating = True
End If
End Sub
Gruß Gerd
Anzeige
AW: Leere Zeilen bzw. Spalten ausblenden
12.11.2009 22:57:58
Dietmar
Hallo Gerd,
nein geht nicht.
Habe mit einer kleinen Matrix getestet und mal auf das ausblenden von Zeilen beschränkt.
Wenn ich den Bereich A5:A20 definiere und z.B. in A6 eintrage =C6, dann reagiert der Code nicht, egal ob in C6 ein Wert steht oder nicht. D.h. Der Bezhug in A6 nämlich =C6 wird als Eintrag gewertet, obwohl der Wert Null ist, weil C6 leer ist.
Hast Du noch eine Idee?
Besten Dank
Gruß
Dietmar aus Aachen
Archiv:="leere Zeile" ...
12.11.2009 23:31:29
Matthias
Hallo
Wenn Du in A6 die Formel =C6 einträgst, ist das Ergebnis 0 also ist der Zellinhalt auch nicht leer
Wäre die Formel in A6: =WENN(C6;C6;"") wäre der .Valuewert ein Leerstring :)
mal nur für Spalte A
Quelle: https://www.herber.de/forum/archiv/900to904/t903603.htm#903609
Option Explicit
Sub test()
Dim letzte As Long, Zeile As Long
letzte = Range("A65536").End(xlUp).Offset(0, 0).Row
For Zeile = letzte To 1 Step -1
If Cells(Zeile, 1).Value = "" Or Cells(Zeile, 1).Value = 0 Then
Cells(Zeile, 1).EntireRow.Delete
End If
Next Zeile
End Sub
Gruß Matthias
Anzeige
Zeilen ausblenden, wenn Zelle zB A6 leer
13.11.2009 00:10:46
Dietmar
Danke Matthias,
1. =Wenn(C6;C5;"") geht nicht, weil wohl die Formel selbst hinderlich ist
2. der TestCode ist schon in etwa meine Suchrichtung. Allerdings wollte ich die in Zeilen nicht löschen, sondern wechselseitig ein- bzw. ausblenden. Die Codeergänzung mit "Hidden" geht allerdings nicht.
Noch eine Idee?
Viele Grüße
Dietmar aus Aachen
was ist bei Dir "leer" ?
13.11.2009 01:06:22
Matthias
hallo
Was Du mir mit =Wenn(C6;C5;"") sagen willst, ist mir nicht ersichtlich.
=WENN(C6;C6;"") habe ich gepostet!
Zitat:
... sondern wechselseitig ein- bzw. ausblenden
Dann benutze ein ToggleButton, das hat nur 2 Zustände: True oder False.
Bei True blendest Du die Zeile ein bei False blendest Du die Zeile aus.
Gruß Matthias
Anzeige
probiers mal so (s. Beispiel)
13.11.2009 08:35:46
Matthias
Hallo Dietmar
Hab das mal so umgesetzt, wie ich es jetzt verstanden habe.
Beispiel wieder für Spalte A
Dim loletzte As Long, i As Long
loletzte = Cells(Rows.Count, 1).End(xlUp).Row
Application.ScreenUpdating = False
For i = loletzte To 2 Step -1
If Cells(i, 1).Value = "" Or Cells(i, 1).Value = 0 Then Rows(i).EntireRow.Hidden = True
Next
Application.ScreenUpdating = True
mit Cells(Rows.Count, 1).End(xlUp).Row geht das so natürlich nur bei kleineren Datenmengen,
sonst kannst Du während der Ausführung des Code einkaufen gehen ;-)
Starte auf jeden Fall die Schleife von unten nach oben, nach dem Motto:
For i = DeineLetzteZeilennummer To 2 Step -1
in der Datei also For i = 31 To 2 Step -1
zum Einblenden dann so:
Cells.EntireRow.Hidden = False
https://www.herber.de/bbs/user/65849.xls
Gruß Matthias
Anzeige
AW: Noch Fragen
13.11.2009 22:02:06
Gerd
Hallo Dietmar,
möchtest Du Zeilen ausblenden, wenn bestimmte Zellen leer sind oder den Formelwert "" enthalten?
Können in diesen Zellen ansonsten nur Zahlenwerte vorkommen oder auch andere Zeichenfolgen?
Gruß Gerd
Leere Zeilen ausblenden, ich habs!
16.11.2009 11:16:31
Dietmar
Danke an Euch,
ich habe die nachfolgende Lösung hier im Archiv gefunden.
Ich blende damit ganze Zeilen aus, wenn in der Spalte A nichts steht.
Leider ist es mir nicht gelungen, diesen Codes in einem zusammen zu fassen und ihn für einen einzelnen Wechselschalter anzupassen. Ich verwende einfach zwei Schaltflächen.
Option Explicit
Sub LeereZeilenAusblenden()
ActiveSheet.Unprotect Password:="12345678"
ActiveSheet.ScrollArea = ""
Application.ScreenUpdating = False
Dim nZeile As Long
For nZeile = 4 To 250
If Cells(nZeile, "A").Value 

Sub AlleZeilenZeigen()
ActiveSheet.Unprotect Password:="12345678"
ActiveSheet.ScrollArea = ""
Application.ScreenUpdating = False
Range("A4:A250").EntireRow.Hidden = False
Application.ScreenUpdating = True
ActiveSheet.ScrollArea = "A1:EG250"
ActiveSheet.Protect Password:=""
End Sub
Viele Grüße
Dietmar aus Aachen
Anzeige

339 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige