Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
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
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

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

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige