Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA Code vereinfachen

VBA Code vereinfachen
16.09.2016 13:22:39
Lutz
Hallo Zusammen,
ich habe mal wieder gebastelt und das klappt auch ganz hervorragend, habe aber eine Frage. Kann man diesen Code vereinfachen und wenn ja wie?
VG und besten Dank.
Sub Worksheet_Activate()
Application.ScreenUpdating = False
With ActiveSheet
ActiveSheet.Rows.Hidden = False
Select Case .Range("B29")
Case Is = "0"
.Rows("29").EntireRow.Hidden = True
Case ""
.Rows("29").EntireRow.Hidden = True
End Select
Select Case .Range("B30")
Case Is = "0"
.Rows("30").EntireRow.Hidden = True
Case ""
.Rows("30").EntireRow.Hidden = True
End Select
Select Case .Range("B31")
Case Is = "0"
.Rows("31").EntireRow.Hidden = True
Case ""
.Rows("31").EntireRow.Hidden = True
End Select
Select Case .Range("B32")
Case Is = "0"
.Rows("32").EntireRow.Hidden = True
Case ""
.Rows("32").EntireRow.Hidden = True
End Select
Select Case .Range("B33")
Case Is = "0"
.Rows("33").EntireRow.Hidden = True
Case ""
.Rows("33").EntireRow.Hidden = True
End Select
Select Case .Range("B34")
Case Is = "0"
.Rows("34").EntireRow.Hidden = True
Case ""
.Rows("34").EntireRow.Hidden = True
End Select
Select Case .Range("B35")
Case Is = "0"
.Rows("35").EntireRow.Hidden = True
Case ""
.Rows("35").EntireRow.Hidden = True
End Select
Select Case .Range("B36")
Case Is = "0"
.Rows("36").EntireRow.Hidden = True
'      Case ""
'         .Rows("36").EntireRow.Hidden = True
End Select
Select Case .Range("B37")
Case Is = "0"
.Rows("37").EntireRow.Hidden = True
Case ""
.Rows("37").EntireRow.Hidden = True
End Select
Select Case .Range("B38")
Case Is = "0"
.Rows("38").EntireRow.Hidden = True
Case ""
.Rows("38").EntireRow.Hidden = True
End Select
End With
With ActiveSheet
Select Case .Range("B42")
Case Is  ""
.Rows("42").EntireRow.Hidden = False
Case ""
.Rows("42").EntireRow.Hidden = True
End Select
Select Case .Range("B43")
Case Is  ""
.Rows("43").EntireRow.Hidden = False
Case ""
.Rows("43").EntireRow.Hidden = True
End Select
Select Case .Range("B44")
Case Is  ""
.Rows("44").EntireRow.Hidden = False
Case ""
.Rows("44").EntireRow.Hidden = True
End Select
Select Case .Range("B45")
Case Is  ""
.Rows("45").EntireRow.Hidden = False
Case ""
.Rows("45").EntireRow.Hidden = True
End Select
Select Case .Range("B46")
Case Is  ""
.Rows("46").EntireRow.Hidden = False
Case ""
.Rows("46").EntireRow.Hidden = True
End Select
Select Case .Range("B47")
Case Is  ""
.Rows("47").EntireRow.Hidden = False
Case ""
.Rows("47").EntireRow.Hidden = True
End Select
Select Case .Range("B48")
Case Is  ""
.Rows("48").EntireRow.Hidden = False
Case ""
.Rows("48").EntireRow.Hidden = True
End Select
Select Case .Range("B49")
Case Is  ""
.Rows("49").EntireRow.Hidden = False
Case ""
.Rows("49").EntireRow.Hidden = True
End Select
Select Case .Range("B50")
Case Is  ""
.Rows("50").EntireRow.Hidden = False
Case ""
.Rows("50").EntireRow.Hidden = True
End Select
Select Case .Range("B51")
Case Is  ""
.Rows("51").EntireRow.Hidden = False
Case ""
.Rows("51").EntireRow.Hidden = True
End Select
End With
Application.ScreenUpdating = True
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Code vereinfachen
16.09.2016 14:58:01
Daniel
HI
wenn du mehrere Case-Fälle hast und in jedem Case-Fall das gleiche passieren soll, dann kannst du daraus einen Case-Fall machen
    Select Case .Range("B29")
Case Is = "0"
.Rows("29").EntireRow.Hidden = True
Case ""
.Rows("29").EntireRow.Hidden = True
End Select
geht auch so, du kannst:
    Select Case .Range("B29")
Case  0, "0", ""
.Rows("29").EntireRow.Hidden = True
End Select
ansonsten bietest sich hier an, mit einer Schleife zu arbeiten:
Dim Zelle as Range
for each Zelle In Range("B29:B38")
Select Case Zelle.Value
Case 0, "0", ""
Zelle.EntireRow.Hidden = True
end Select
Next
For Each Zelle in Range("B42:B51")
Zelle.EntireRow.Hidden = (Zelle.Value = "")
Next
Gruß Daniel
Anzeige
AW: VBA Code vereinfachen
16.09.2016 15:53:51
Lutz
Vielen Dank Daniel.
So langsam verstehe ich das auch mit der Schleife.
Viele Grüße
Lutz
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige