Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
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
Leere Zeilen aus bzw. einblenden .
29.10.2016 15:52:22
Sven
Da bin ich mal wieder :-)
ich möchte auf einen Tabellenblatt Zeilen ausblenden wenn sie Leer sein ein einblenden wenn etwas drinnen steht .
Bisher hab ich das mit Checkboxen erledigt. Nun möchte ich es aber wenn etwas drinnen steht bzw. nicht drinnen steht .
Sub sbRowsHideShow(ByVal startzeile As Long, ByVal zeilen As String)
Application.ScreenUpdating = False
Worksheets("Januar").Unprotect
With Sheets("Januar")
If .Rows(startzeile).EntireRow.Hidden = False Then
.Range(zeilen).EntireRow.Hidden = True
Else
.Range(zeilen).EntireRow.Hidden = False
End If
End With
Worksheets("Januar").Protect
Application.ScreenUpdating = True
End Sub
Private Sub CheckBox1_Click()
sbRowsHideShow 7, "7:7,25:25,43:43,61:61,79:79,97:97"
End Sub
so hab ich es bisher gehandhabt .
Nun soll es aber zb. so sein das wenn in Tabelle1 in zelle a2 etwas drinnen steht, das die oben genannten zeilen eingeblendet bzw. wenn nichts drinnen steht ausgeblendet werden .
Kann da jemand helfen ?
Gruß
Sven

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Leere Zeilen aus bzw. einblenden .
29.10.2016 15:55:26
Hajo_Zi
Hallo Sven,
warum nicht einfach Autofilter?

AW: Leere Zeilen aus bzw. einblenden .
29.10.2016 16:20:49
Gerd
Hallo Sven,
ungetestet. Unterstellt, Tabelle1!A2 erhält seinen Wert nicht per Formel.
'Allgemeines Modul
Sub sbRowsHideShow2(Optional ByVal EinAus)
Application.ScreenUpdating = False
If IsMissing(EinAus) Then EinAus = IsEmpty(Tabelle1.Cells(2, 1))
With Worksheets("Januar")
.Unprotect
.Range("7:7,25:25,43:43,61:61,79:79,97:97").EntireRow.Hidden = EinAus
.Protect
End With
Application.ScreenUpdating = True
End Sub
'Modul von Tabelle1
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then Call sbRowsHideShow2(IsEmpty(Target))
End Sub

Gruß Gerd
Anzeige
AW: Leere Zeilen aus bzw. einblenden .
29.10.2016 17:16:17
Sven
Hey Gerd,
danke für die Mühe.
Bekomme aber leider immer Fehlermeldungen :-(.
Hab versucht es zu modifizieren , aber will irgendwie nicht .
Kann man diesen Code hier abwandeln so das ich nicht für jedes Zeilenpaar den Code Schreiben muss ?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If IsEmpty(Range("G2")) Then
Rows("4:5").Hidden = True
Else
Rows("4:5").Hidden = False
End If
End Sub

Es würde dann zb. die Zeilen 4:6, 7:8, 89:91, usw betreffen
Gruß
Sven
AW: Leere Zeilen aus bzw. einblenden .
30.10.2016 02:40:24
fcs
Hallo Sven,
hast du denn Gerds Vorschlag denn mal eingebaut wie beschrieben?
Bekomme aber leider immer Fehlermeldungen :-(.
das nützt leider wenig, um dir weiter zu helfen.
Welche Fehler-Nr. und welche Meldungstext?
Hab versucht es zu modifizieren , aber will irgendwie nicht .

Was hast du geändert?
Wir haben keine Kristallkugel, um dir über die Schulter zu schauen.
Als VBA-Anfänger macht man schnell mal Syntax-Fehler.
Kann man diesen Code hier abwandeln so das ich nicht für jedes Zeilenpaar den Code Schreiben muss ?
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If IsEmpty(Range("G2")) Then
Rows("4:5").Hidden = True
Else
Rows("4:5").Hidden = False
End If
End Sub

Wie heißt es bei Radio Eriwan: Im Prinzip ja, aber es macht wenig Sinn einen wahrscheinlich zum Ziel führenden Lösungsvorschlag nicht bis zum Ende umzusetzen sondern wieder mit einem anderen Weg zu beginnen.
Insbesondere, wenn dieser Vorschlag im Prinzip die von dir wahrscheinlich gewünschten Vereinfachungen schon beinhaltet.
Mit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
ohne Prüfung, welche Zelle selektiert wurde, wird wie in deinem Beispiel bei jedem Klick in eine beliebige Zelle im Blatt der Wert in Zelle G2 geprüft und die Zeilen ein-/ausgeblendet.
Das ist auf Dauer ziemlich nervig.
Du solltest also nochmals sehr genau überlegen, wann du das Ein-/Ausblender der Zeilen ausführen willst/musst.
Dann kann man auch das passende Ereignis-Makro auswählenund mit den passenden Anweisungen versehen.
Eine kleine Beispiel-Datei -mit ggf. anonymisierten Beispieldaten- hier hochzuladen ist auch extrem hilfreich, wenn bei einer Problemstellung geholfen werden soll.
LG
Franz
Anzeige
AW: Leere Zeilen aus bzw. einblenden .
31.10.2016 14:53:59
Sven
Hi Gerd,
hab es hin bekommen , hab beim ändern einen kleinen Fehler gemacht .
Nun wird die Besagte Zelle die überprüft wird doch mit einer Formel angesprochen (=AA5).
Also das was in AA5 steht wird aus der A2 geholt . Wenn in A2 nichts steht, wird in der AA5 eine 0 angezeigt und somit ist die Zelle ja nicht leer.
Kann man das irgendwie umgehen ?
Hab es schon mit ISTFEHLER probiert und auch schon die anzeige der 0 in den Optionen ausgeschalten, aber das bringt irgendwie nichts :-(
Gruß
Sven
AW: Leere Zeilen aus bzw. einblenden .
31.10.2016 21:50:13
Werner
Hallo Sven,
stellt sich die Frage, weshalb du dann (offensichtlich) die Zelle AA5 im Makro auswertet und nicht Zelle A2?
Oder versuch doch mal die Zelle AA5 auf größer 0 auszuwerten.
If IsMissing(EinAus) Then EinAus = Tabelle1.Cells(5, 27) > 0
Gruß Werner
Anzeige

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige