Problem mit Worksheet_Change Code
09.01.2013 09:16:13
Riccardo
folgendes Problem:
Ich habe einen Code, der so arbeiten soll, dass Feld I35 nur bestimmte Werte, in abhängigkeit von Feld I34, annehmen kann. Das sieht dann etwa so aus:
I34 - I35
0 - ausgeblendet
8 - 0
16 - 1
32 - 2,3
64 - 4,5,6,7
128 - 8,9,10
I35 ist eine Liste mit den Werten 0-10 und I34 eine Liste mit den Werten, die oben angegeben sind.
Mein Code sieht folgender Maßen aus:
Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$I$34"
Application.EnableEvents = False
If (Target.Value = 0) Then
Rows("35").Hidden = True
End If
If (Target.Value = 8) Then
Rows("35").Hidden = False
Range("I35") = 0
End If
If (Target.Value = 16 And Range("I35").Value > 1) Then
Rows("35").Hidden = False
Range("I35") = 1
End If
If (Target.Value = 32 And Range("I35").Value > 3) Then
Rows("35").Hidden = False
Range("I35") = 3
End If
If (Target.Value = 64 And Range("I35").Value > 7) Then
Rows("35").Hidden = False
Range("I35") = 7
End If
If (Target.Value = 128 And Range("I35").Value > 10) Then
Rows("35").Hidden = False
Range("I35") = 10
End If
Application.EnableEvents = True
Case "$I$35"
Application.EnableEvents = False
If (Range("I34").Value = 8) Then
Rows("35").Hidden = False
Target.Value = 0
End If
If (Range("I34").Value = 16 And Range("I35").Value > 1) Then
Rows("35").Hidden = False
Target.Value = WorksheetFunction.Min(Target.Value, 1)
End If
If (Range("I34").Value = 32 And Range("I35").Value > 3) Then
Rows("35").Hidden = False
Target.Value = WorksheetFunction.Min(Target.Value, 3)
End If
If (Range("I34").Value = 64 And Range("I35").Value > 7) Then
Rows("35").Hidden = False
Target.Value = WorksheetFunction.Min(Target.Value, 7)
End If
If (Range("I34").Value = 128 And Range("I35").Value > 10) Then
Rows("35").Hidden = False
Target.Value = WorksheetFunction.Min(Target.Value, 10)
End If
Application.EnableEvents = True
End Select
Dieser Code sollte halt arbeiten, sobald eine Eingabe getätig wird, macht er aber nicht. Er arbeitet erst, wenn ich nach der Änderung noch einmal in das entsprechende Feld klicke und ich versteh nicht ganz, warum das so ist. Bei einem anderen Code, der nur geringfügig anders ist, klappt es einwandfrei :(Vielen Dank schon mal im Vorraus :)
LG
Riccardo