Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1532to1536
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
Inhaltsverzeichnis

Makro dynamisch anpassen

Makro dynamisch anpassen
03.01.2017 09:46:59
Anni
Hallo zusammen,
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!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro dynamisch anpassen
03.01.2017 10:31:17
Michael
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
Anzeige
Bin dran, es geht hier weiter...
03.01.2017 14:42:59
Michael
...https://www.herber.de/forum/messages/1532850.html
LG
Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige