Excel - Leere Zeilen ausblenden?
Hallo,
Excel - Gibt es eine Möglichkeit eine Zeile mit Felder, in denen Formeln sind, auszublenden bis etwas eingefügt wird?
Habe es mit FIltern versucht, aber der FIlter ist nicht zuverlässig und aktualisiert sich bei mir nicht...
Vielen Dank im Voraus :)
Mit dem Filter wird es nicht aktualisiert... leider :(
*zum zeigen was ich meine mit "es wird nicht aktualisiert, wenn ich ein neues Feld eingeblendet werden soll, es aber durch den Filter nicht aktualisiert..."*
6 Antworten
Dritter Anlauf:
Private Sub Worksheet_Change(ByVal Target As Range)
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To letztezeile
If Range("A" & i & ":A" & i).Value = 0 Then
Range("A" & i & ":A" & i).EntireRow.Hidden = True
Else
Range("A" & i & ":A" & i).EntireRow.Hidden = False
End If
Next
End Sub
VBA Entwicklertools öffnen, und auf Tabelle1 Doppelklicken und die 2 Zeilen Sub und End Sub ersetzen dur das hier:
Private Sub Worksheet_Change(ByVal Target As Range)
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To letztezeile
If Range("A" & i & ":A" & i).Value = 0 Then
Range("A" & i & ":A" & i).EntireRow.Hidden = False
Else
Range("A" & i & ":A" & i).EntireRow.Hidden = True
Next
End Sub
Ein kleiner Fehler, mein script blendet fatalerweise nur gefüllte Zeilen aus, tausche das „True“ durch „False“ aus und umgekehrt bei den 2 Zeilen die die Zeile auf Hidden stellen.
Noch zu erwähnen dass du die Spalte anpassen must.
Das ist mir in der Eile passiert weil ich es on the Fly innerhalb 160 sekunden (Danke GF) fixen musste da ist dann etwas durcheinandergeraten sein. Kann dir gern noch mal das Script bearbeitet zukommen lassen, bei mir klappt das problemlos.
Auf die Idee es schnell zu korrigieren brachte mich Hannes62a (thx an der Stelle), weil ich mir dann Gedanken gemacht habe wie du die Zeilen wieder eingeblendet bekommst.
Wenn du dir in den Entwicklertools mit VBA ein kleines Programm schreiben könntest, das bei Änderungen automatisch das Sheet nach leeren Zellen durchgeht und diese mit der Visibleeigenschaft ausblenen.
Ich habe das noch nie probiert und weiss nicht ob eine einzelne Zelle das unterstützt.
Ist aber warscheinlich eher umständlich, besser den Trick mit Bedingter Formatierung und weiße Schrift mit weißem Hintergrund.
Wenn VBA für dich ein komplettes Fremdwort ist kann ich dir unter die Arme greifen nur kenne ich mich eben besser mit VBA aus und kaum mit Formeln.
Hab grad gelesen Zeile!! Ja das geht fix.
Danke für deine Antwort,
Aber ich denke nicht das ich irgenwelche Programme umschreiben kann...
Und da die Formel mir nur ein leeres Feld anzeigt, habe ich hauptsächlich leere Felder, aber kann diese nicht ausblenden. :(
Grundsätzlich ist die geri3d's Idee mit dem Makro, das auf das Change Ereignis reagiert, nicht schlecht. Hat aber ein paar Fallstricke. Das Change Ereignis wird nur ausgelöst, wenn die Zelle manuell geändert wird. Es reagiert nicht darauf, wenn sich der Wert einer Zelle per Formel ändert. Und in diesem Fall müsste das Change-Ereignis auch aus der Quelltabelle, also der Pendenzenliste heraus gesteuert werden.
Ich würde die Aufgabe so lösen, dass ich ein Makro zum Ein-/Ausblenden der Zeilen an das Worksheet_Activate Ereignis hänge. Zur Sicherheit kann man noch einen Refresh Button spendieren. Letzteres ist aber vermutlich gar nicht nötig, es sei denn, es gibt Bezüge in andere Dateien.
Der Code lässt sich noch deutlich verbessern. Probier mal folgenden Code, der im Codebereich Deiner Auswertungstabelle stehen muss. Wenn Du dann auf das Blatt wechselst, wird die Ansicht automatisch aktualisiert.
Private Sub Worksheet_Activate()
letztezeile = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
On Error GoTo Fehler
For i = 1 To letztezeile
Rows(i).Hidden = (Cells(i, 2) = "")
Next
Fehler:
Application.ScreenUpdating = True
On Error GoTo 0
End Sub
Funktioniert es?
Gruß
Hannes
Wenn Du die Formel aus der 2. Tabelle in alle folgenden Zeilen kopiert hast, wird auch das Ergebnis entsprechend angezeigt.
Solange Du in der 2. Tabelle die Zeilen ausgeblendet hast, kannst Du sie selbstverständlich nicht sehen bzw. erst wenn Du sie wieder eingeblendet hast.
Ansonsten ist die Formel korrekt.
Du kannst für das Ein- und Ausblenden ein Makro anlegen.
Vielen Dank für deine Mühe,
Es kommt zwar eine Fehler-Meldung wenn ich meine Formel ändern will, aber ich denke ich habe eine einfachere Lösung für das ganz gefunden. :)