1.4k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo Leute,

wer kann mir sagen wie ich mehrere geschützte Zeilen in Excel 2003 mit VBA aus und wieder einblende.
Genauer gesagt möchte ich:

Wenn S2=1 denn Zeile 4 bis 500 ausblenden
Wenn S2=2 denn Zeile 4 bis 40 und Zeile 100 bis 500 ausblenden
Wenn S2=3 denn Zeile 4 bis 80 und Zeile 120 bis 500 ausblenden
Wenn S2=4 denn Zeile 4 bis 100 und Zeile150 bis 500 ausblenden
Wenn A1=0 dann keine Ausblendung

So habe ich es versucht.

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
Rows("4:500").Hidden = Range("s2").Value = 1
Rows("4:40").Hidden = Range("s2").Value = 2
Rows("100:500").Hidden = Range("s2").Value = 2
Rows("4:80").Hidden = Range("s2").Value = 3
Rows("120:500").Hidden = Range("s2").Value = 3
Rows("4:100").Hidden = Range("s2").Value = 4
Rows("150:500").Hidden = Range("s2").Value = 4
ActiveSheet.Protect
End Sub

Das Problem ist wahrscheinlich: Zeilen die schon ausgeblendet sind können nicht mehr ausgeblendet werden. Mit fortlaufenden Zeilen funktioniert es.

Danke im Voraus

Juppes

3 Antworten

0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
ich sehe erstmal kein Grund warum das nicht gehen soll.
Ich hatte das Makro wahrscheinloich nur ausgeführt bei Eingabe in S2

Gruß Hajo
0 Punkte
Beantwortet von hajo_zi Experte (9.1k Punkte)
mir ist inzwischen eingefalen wo Dein Problem liegt. Ich vermute co

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Unprotect
Rows("4:500").Hidden = False
Select Case Range("S2")
Case 1
Rows("4:500").Hidden = True
Case 2
Rows("4:40").Hidden = True
Rows("100:500").Hidden = True
Case 3
Rows("4:80").Hidden = True
Rows("120:500").Hidden = True
Case 4
Rows("4:100").Hidden = True
Rows("150:500").Hidden = True
End Select
ActiveSheet.Protect
End Sub


Gruß Hajo
0 Punkte
Beantwortet von
Vielen Dank Hajo,

diese Antwort hat mein Problem gelöst.

Gruß
Juppes
...