HERBERS Excel-Forum - das Archiv
Code vereinfachen
Luca

Hallo zusammen
ich habe einen Code für einen Chart geschrieben, in welchem er in Abhängigkeit davon ob in einer Zelle ein Wert steht oder nicht, eine betreffende Spalte auf einem anderen Blatt aus- bzw. eingeblendet wird. Jedoch weiss ich nicht wie ich dies vereinfachen soll, da ich nicht weiss, ob man "offset" auch für Spalten bzw. wie machen soll. Hier der Codeschnipsel

If Sheets("Inputs").Range("E8") = NV Then
Sheets("Berechnungen").Columns("B:B").Hidden = True
Else
Sheets("Berechnungen").Columns("B:B").Hidden = False
End If
If Sheets("Inputs").Range("E9") = NV Then
Sheets("Berechnungen").Columns("C:C").Hidden = True
Else
Sheets("Berechnungen").Columns("C:C").Hidden = False
End If
If Sheets("Inputs").Range("E10") = NV Then
Sheets("Berechnungen").Columns("D:D").Hidden = True
Else
Sheets("Berechnungen").Columns("D:D").Hidden = False
End If
If Sheets("Inputs").Range("E11") = NV Then
Sheets("Berechnungen").Columns("E:E").Hidden = True
Else
Sheets("Berechnungen").Columns("E:E").Hidden = False
End If
If Sheets("Inputs").Range("E12") = NV Then
Sheets("Berechnungen").Columns("F:F").Hidden = True
Else
Sheets("Berechnungen").Columns("F:F").Hidden = False
End If
If Sheets("Inputs").Range("E13") = NV Then
Sheets("Berechnungen").Columns("G:G").Hidden = True
Else
Sheets("Berechnungen").Columns("G:G").Hidden = False
End If
If Sheets("Inputs").Range("E14") = NV Then
Sheets("Berechnungen").Columns("H:H").Hidden = True
Else
Sheets("Berechnungen").Columns("H:H").Hidden = False
End If
If Sheets("Inputs").Range("E15") = NV Then
Sheets("Berechnungen").Columns("I:I").Hidden = True
Else
Sheets("Berechnungen").Columns("I:I").Hidden = False
End If
If Sheets("Inputs").Range("E16") = NV Then
Sheets("Berechnungen").Columns("J:J").Hidden = True
Else
Sheets("Berechnungen").Columns("J:J").Hidden = False
End If
If Sheets("Inputs").Range("E17") = NV Then
Sheets("Berechnungen").Columns("K:K").Hidden = True
Else
Sheets("Berechnungen").Columns("K:K").Hidden = False
End If
If Sheets("Inputs").Range("E18") = NV Then
Sheets("Berechnungen").Columns("L:L").Hidden = True
Else
Sheets("Berechnungen").Columns("L:L").Hidden = False
End If

Danke im Voraus :)

AW: Code vereinfachen
Matthias

Hallo Luca,
probier es mal mit einer Schleife:
For x = 2 to 12
If Sheets("Inputs").Range("E" & x+6) = NV Then
Sheets("Berechnungen").Columns(x).Hidden = True
Else
Sheets("Berechnungen").Columns(x).Hidden = False
End If
Next x
lg Matthias

AW: Code vereinfachen
Rudi

Hallo,

Dim i As Integer
For i = 8 To 18
Sheets("Berechnungen").Columns(i - 2).Hidden _
= Sheets("Inputs").Cells(i, 5) = NV
Next i

Gruß
Rudi

AW: Code vereinfachen
Luca

Vielen Dank, auf dieses "=" bin ich nicht gekommen, danke :)

Code vereinfachen
Luca

Hallo zusammen
ich habe einen Code für einen Chart geschrieben, in welchem er in Abhängigkeit davon ob in einer Zelle ein Wert steht oder nicht, eine betreffende Spalte auf einem anderen Blatt aus- bzw. eingeblendet wird. Jedoch weiss ich nicht wie ich dies vereinfachen soll, da ich nicht weiss, ob man "offset" auch für Spalten bzw. wie machen soll. Hier der Codeschnipsel

If Sheets("Inputs").Range("E8") = NV Then
Sheets("Berechnungen").Columns("B:B").Hidden = True
Else
Sheets("Berechnungen").Columns("B:B").Hidden = False
End If
If Sheets("Inputs").Range("E9") = NV Then
Sheets("Berechnungen").Columns("C:C").Hidden = True
Else
Sheets("Berechnungen").Columns("C:C").Hidden = False
End If
If Sheets("Inputs").Range("E10") = NV Then
Sheets("Berechnungen").Columns("D:D").Hidden = True
Else
Sheets("Berechnungen").Columns("D:D").Hidden = False
End If
If Sheets("Inputs").Range("E11") = NV Then
Sheets("Berechnungen").Columns("E:E").Hidden = True
Else
Sheets("Berechnungen").Columns("E:E").Hidden = False
End If
If Sheets("Inputs").Range("E12") = NV Then
Sheets("Berechnungen").Columns("F:F").Hidden = True
Else
Sheets("Berechnungen").Columns("F:F").Hidden = False
End If
If Sheets("Inputs").Range("E13") = NV Then
Sheets("Berechnungen").Columns("G:G").Hidden = True
Else
Sheets("Berechnungen").Columns("G:G").Hidden = False
End If
If Sheets("Inputs").Range("E14") = NV Then
Sheets("Berechnungen").Columns("H:H").Hidden = True
Else
Sheets("Berechnungen").Columns("H:H").Hidden = False
End If
If Sheets("Inputs").Range("E15") = NV Then
Sheets("Berechnungen").Columns("I:I").Hidden = True
Else
Sheets("Berechnungen").Columns("I:I").Hidden = False
End If
If Sheets("Inputs").Range("E16") = NV Then
Sheets("Berechnungen").Columns("J:J").Hidden = True
Else
Sheets("Berechnungen").Columns("J:J").Hidden = False
End If
If Sheets("Inputs").Range("E17") = NV Then
Sheets("Berechnungen").Columns("K:K").Hidden = True
Else
Sheets("Berechnungen").Columns("K:K").Hidden = False
End If
If Sheets("Inputs").Range("E18") = NV Then
Sheets("Berechnungen").Columns("L:L").Hidden = True
Else
Sheets("Berechnungen").Columns("L:L").Hidden = False
End If

Danke im Voraus :)

AW: Code vereinfachen
Matthias

Hallo Luca,
probier es mal mit einer Schleife:
For x = 2 to 12
If Sheets("Inputs").Range("E" & x+6) = NV Then
Sheets("Berechnungen").Columns(x).Hidden = True
Else
Sheets("Berechnungen").Columns(x).Hidden = False
End If
Next x
lg Matthias

AW: Code vereinfachen
Rudi

Hallo,

Dim i As Integer
For i = 8 To 18
Sheets("Berechnungen").Columns(i - 2).Hidden _
= Sheets("Inputs").Cells(i, 5) = NV
Next i

Gruß
Rudi

AW: Code vereinfachen
Luca

Vielen Dank, auf dieses "=" bin ich nicht gekommen, danke :)

Bewerten Sie hier bitte das Excel-Portal