ich habe ein Tabelle mit 2 Tabellenblättern.
In Blatt 1 mache ich verschiedene Eingaben und
in Blatt 2 kommen dementsprechende Werte in Textform in den Zellen B2 bis B36 heraus.
Nun habe ich das folgende Makro geschrieben, das alle Zeilen ausblendet, die aufgrund der Angaben in Blatt 1 leer bleiben:
Sub Hide_Rows()
Dim c As Range
For Each c In Range("B2:B36")
If c.Value "" Then
c.EntireRow.Hidden = False
Else
c.EntireRow.Hidden = True
End If
Next c
End Sub
Wenn ich die Angaben in Blatt 1 nun ändere, passt sich das Makro aber leider nicht an und es werden z.B. Zeilen, die nun gefüllt sind, nicht angezeigt.
Kann mir jemand helfen, wie ich mein Makro so verändere, dass es sich dynamisch mit den Angaben verändert?
Vielen Dank!
Hallo!
wie ich mein Makro so verändere, dass es sich dynamisch mit den Angaben verändert
Da müssen wir einiges klären. Grds. hast Du mit dem o.a. Makro eine gewöhnliche Routine, die Du manuell anstoßen musst; d.h. wenn Du bspw. willst, dass sich Blatt 2 schon bei jeder Eingabe in Blatt 1 mitverändert, müsstest Du auf eine Ereignis-Prozedur setzen. zB kannst Du Excel anweisen bei jeder Änderung in einem bestimmten Bereich auf Blatt 1 das Blatt 2 anzupassen, oder Du lässt die Anzeige in Blatt 2 immer dann anpassen, wenn es ausgewählt wird - denn wenn in Blatt 1 Eingaben gemacht werden, ist für gewöhnlich Blatt 2 nicht sichtbar. Damit hättest Du schon mal eine bestimmte Ebene von Dynamik.
Und die zweite Sache ist die, dass Du zunächst alle Zellen sichtbar machen musst um dann die jeweils betroffenen wieder auszublenden.
Hier mal noch auf Basis Deines Codes, ohne Ereignis-Prozedur:
Sub Hide_Rows()
Dim Ws As Worksheet: Set Ws = ThisWorkbook.Worksheets("Blatt 2")
Dim C As Range
With Ws
.Cells.EntireRow.Hidden = False
For Each C In .Range("B2:B36")
If C.Value = "" Then C.EntireRow.Hidden = True
Next C
End With
End Sub
Blatt-Name musst Du ggf. anpassen; beachte auch, dass ich hier das 2. Blatt eindeutig referenziere!
LG
Michael
_____________________________________________________________________________________
Vielen Dank dafür!
Ja tatsächlich gibt es einen Bereich im Blatt 1, den man als Anhaltspunkt nehmen kann, um festzustellen, ob sich etwas verändert hat.
Immer wenn sich der Wert in Zelle CP197 im Blatt 1 ändert, müssen sich die Zeilen in Tabellenblatt 2 anpassen und entsprechend ein- oder ausgeblendet werden.
Wie kann ich das in meinem Makro einbauen?
Lg, anni