Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellen ausblenden- Funktion verschlanken
#1
Hallo,

hab gerade erst angefangen etwas mit VBA rumzuhantieren und mir folgende Formel zusammengebastelt/geklaut um gewissen Zeilen auszublenden wenn ein "X" oder "x" in gewissen Zellen gesetzt wird:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
   
    If Range("E56").Value = "x" Or Range("E56").Value = "X" Then
    Rows("103").Hidden = True
    Exit Sub
    Else
    Rows("103").Hidden = False
    End If
   
    If Range("E54").Value = "x" Or Range("E54").Value = "X" Then
    Rows("89:101").Hidden = True
    Exit Sub
    Else
    Rows("89:101").Hidden = False
    End If
   
    If Range("E52").Value = "x" Or Range("E52").Value = "X" Then
    Rows("127:138").Hidden = True
    Exit Sub
    Else
    Rows("127:138").Hidden = False
    End If
   
    If Range("E50").Value = "x" Or Range("E50").Value = "X" Then
    Rows("75:88").Hidden = True
    Rows("102:115").Hidden = True
    Rows("127:138").Hidden = True
   
    Exit Sub
    Else
    Rows("75:88").Hidden = False
    Rows("102:115").Hidden = False
    Rows("127:138").Hidden = False
   
    End If
   
    If Range("E43").Value = "x" Or Range("E43").Value = "X" Then
    Rows("106").Hidden = True
    Rows("117:121").Hidden = True
    Exit Sub
    Else
    Rows("106").Hidden = False
    Rows("117:121").Hidden = False
    End If
   
    If Range("E39").Value = "x" Or Range("E39").Value = "X" Then
    Rows("116").Hidden = True
    Exit Sub
    Else
    Rows("116").Hidden = False
 
    End If
   
    If Range("E42").Value = "x" Or Range("E42").Value = "X" Then
    Rows("75:88").Hidden = True
    Exit Sub
    Else
    Rows("75:88").Hidden = False
 
    End If

End Sub

Jetzt ackert Excel allerdings auch jeder mal schon 1-2 Sekündchen wenn ich ein Kreuz setzte und ich vermute einfach mal weil der Code ja schon etwas länger und sicherlich auch umständlich geschrieben ist. Kann man jemand sagen ob und wie ich da Sachen vielleicht zusammenfassen kann? Vielen Dank schon mal im voraus.
Antworten Top
#2
Hallo


- die jeweilige Prüfung muss doch nur durchlaufen werden, wenn genau die eine Zelle geändert wird. 
- GROSS/klein kannst du eliminieren, wenn du den Zellwert UCASE() setzt, also in GROSS umwandelst und dann immer gegen grosses X prüfst.
- Das false/true  kommt aus der Berechnung selbst 

Versuch es mal nach diesem Schema


Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 
    Select Case Target.Address(0, 0)
        Case "E56"
            Rows("103").Hidden = (UCase(Target) = "X")
 
        Case "E54"
            Rows("89:101").Hidden = (UCase(Target) = "X")
   
        Case "E52"
            Rows("127:138").Hidden = (UCase(Target) = "X")
 
        Case "E50"
            Rows("75:88").Hidden = (UCase(Target) = "X")
            Rows("102:115").Hidden = (UCase(Target) = "X")
            Rows("127:138").Hidden = (UCase(Target) = "X")
           
        'usw
 
    End Select

End Sub


LG UweD
Antworten Top
#3
Alles klar vielen Dank.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste