Zeilen per Makro ausblenden

Bild

Betrifft: Zeilen per Makro ausblenden
von: Patrick
Geschrieben am: 27.03.2005 16:19:21
Hallo zusammen,
im Tabellenblatt 1 ist folgendes Makro:


Private Sub Worksheet_Activate()
   Rows("28").EntireRow.Hidden = IIf([Tabelle2!d4].Value = 0, True, False)
   Rows("29").EntireRow.Hidden = IIf([Tabelle2!d5].Value = 0, True, False)
   Rows("30").EntireRow.Hidden = IIf([Tabelle2!d6].Value = 0, True, False)
   ...
End Sub

Es bewirkt, dass im Blatt 1 die Zeile 28 ausgeblendet wird, wenn in Tabelle2 Zelle D4 der Wert "0" eingegeben wird. Wird etwas anderes eingegeben, wird die Zeile wieder eingeblendet.
Das funktioniert auch ganz gut, allerdings muß ich nun so viele Zeilen (ca. 1000) in dieses Makro einfügen, dass sich Excel über die zu große Prozedur beschwert.
Weiß jemand eine Lösung, wie man dieses Zusammenfassen kann und dadurch vielleicht auch noch leichter pflegen lässt?
Gruß
Patrick
Bild

Betrifft: AW: Zeilen per Makro ausblenden
von: Reinhard
Geschrieben am: 27.03.2005 16:30:45
Hallo Patrick,
versuchs mal so

Private Sub Worksheet_Activate()
For n = 4 To 100 'anpassen
Worksheets(1).Rows(n + 24).Hidden = Worksheets(2).Cells(n, 4) = 0
Next n
End Sub

Viele Grüße
Reinhard
Bild

Betrifft: AW: Zeilen per Makro ausblenden
von: Patrick
Geschrieben am: 27.03.2005 16:58:03
Hallo Reinhard,
das funktioniert schon super!
Kann ich das auch so machen, dass ich noch weitere Tabellenblätter einbinde? Siehe:

Private Sub Worksheet_Activate()
   Rows("28").EntireRow.Hidden = IIf([Tabelle2!d4].Value = 0, True, False)
   Rows("29").EntireRow.Hidden = IIf([Tabelle2!d5].Value = 0, True, False)
   Rows("30").EntireRow.Hidden = IIf([Tabelle2!d6].Value = 0, True, False)
   ...
   Rows("177").EntireRow.Hidden = IIf([Tabelle2!d153].Value = 0, True, False)
   Rows("178").EntireRow.Hidden = IIf([Tabelle3!d4].Value = 0, True, False)
   Rows("179").EntireRow.Hidden = IIf([Tabelle3!d5].Value = 0, True, False)
   Rows("180").EntireRow.Hidden = IIf([Tabelle3!d6].Value = 0, True, False)
   ...
   Rows("327").EntireRow.Hidden = IIf([Tabelle3!d153].Value = 0, True, False)
End Sub

Das würde mir die Übersicht in der "Datenbank" deutlich erhöhen.
Danke und Gruß
Patrick
Bild

Betrifft: AW: Zeilen per Makro ausblenden
von: Reinhard
Geschrieben am: 27.03.2005 17:06:35
Hallo Patrick,
du schriebst von 1000 zeilen.
Deshalb müsstest du schon sagen was zu wem gehört.
Also etwa so
zeile28-177 zu Tabelle2!4:153
zeile178-327 zu Tabelle3!4:153
zeile328-??? zu Tabelle??!4:153
usw
Viele Grüße
Reinhard
Bild

Betrifft: AW: Zeilen per Makro ausblenden
von: Patrick
Geschrieben am: 28.03.2005 13:13:06
Hallo Reinhard,
Ja, es sind ca. 1000 Zeilen in einer Tabelle. Da diese aber in 5 Kategorien einteilbar sind, würde ich es gerne in verschiedene Blätter aufteilen. Es erhöht mir doch deutlich die Übersicht.
Pro Kategorie sind es 200 Einträge, allerdings kann es auch mal abweichen.
Btw.: Die Lösung von Hajo ließ sich gut anpassen.
Danke allen.
Patrick
Bild

Betrifft: AW: Zeilen per Makro ausblenden
von: Hajo_Zi
Geschrieben am: 27.03.2005 16:38:46
Hallo Patric,
schalte den Bildschirm noch aus.
Option Explicit

Private Sub Worksheet_Activate()
    Dim LoI As Long
    Application.ScreenUpdating = False
    For LoI = 28 To 1028
        Rows(LoI).EntireRow.Hidden = Worksheets("Tabelle2").Cells(LoI - 24, 4) = 0
    Next LoI
    Application.ScreenUpdating = True
End Sub

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Bild

Betrifft: AW: Zeilen per Makro ausblenden
von: Patrick
Geschrieben am: 28.03.2005 13:14:29
Hallo Hajo,
konnte Deine Lösung einsetzen und anpassen. Klappt hervorragend!
Danke
Patrick
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Zeilen per Makro ausblenden"