"If" wertet anscheinend nicht richtig aus, oder?
06.05.2004 13:23:39
Johannes
Ich lasse Sub LAkt(...) über Worksheet_Change starten:
LAkt(...) soll wenn in Spalte 8 oder 11 Änderungen gemacht wurden aktiv werden, was ich durch die If-Anweisung bewerkstelligen will. Das klappt eigentlich auch.
Aber wenn sich Werte in anderen Spalten ändern, springt das Makro auch an, das versteh ich nicht, wo is da die Lücke in meiner If-Schleife?
(Dadurch dass ich für BZelle in diesen Fällen keinen Wert habe kommt es natürlich zum Fehler, aber in solchen Fällen wird ja BZelle gar nicht benötigt, und dürfte laut meiner Interpretation, mit dies If-Anweisung gar nicht aufgerufen werden)
Wo liegt mein Denkfehler?
Bitte helft mir.
Gruß, Johannes
Im folgenden die Codes
--
Sub LAkt(Bereich As Range)
Dim BZelle As Range
For Each Zelle In Bereich
If Zelle.Column = 8 Or 11 Then
If Zelle.Column = 8 Then
Set BZelle = Zelle
ElseIf Zelle.Column = 11 Then
Set BZelle = Zelle.Offset(0, -3)
Else
End If
If IsNumeric(BZelle.Value) And BZelle.Value "" Then BZelle.Offset(0, 13).Value = -1 Else BZelle.Offset(0, 13).Value = 0
If IsNumeric(BZelle.Offset(0, 3).Value) And BZelle.Offset(0, 3).Value "" Then BZelle.Offset(0, 14).Value = BZelle.Offset(0, 13).Value * (-1) + 1 Else BZelle.Offset(0, 14).Value = BZelle.Offset(0, 13).Value * (-1)
BZelle.Offset(0, 15).Value = BZelle.Offset(0, 14).Value * (-1)
End If
Next Zelle
End Sub
--
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Call LAkt(Target)
Application.EnableEvents = True
End Sub