Rechenfehler?
23.09.2008 10:30:48
Gordon
ich habe hier irgendwo einen Denkfehler. Und zwar habe ich ein Makro hier, dass dass beim Auslösen einen Wert aus einer Zelle nimmt (z.B. A2) und diesen Wert in eine andere Zelle (z.B. A1) addiert! Vor der Rechnung stand in A1 der Wert null.
Wenn man das Makro ein zweites mal ausführt, wird der Wert wieder abgezogen, der eben noch addiert wurde. Heißt also, dass wieder null in Zelle A1 stehen müßte. Aber da steht dann statt dessen der Wert "-1,45519152283669E-11".
Woran kann das liegen bzw. wo könnte der Fehler liegen?
Hier mal das Makro für die Berechnung:
Sub Gesamt(x As Integer)
Dim kalk
Dim planfix
Dim planfc
kalk = 0
planfix = 0
planfc = 0
With Worksheets("Neu")
For z = 8 To 253
Select Case z
Case 8 To 12, 15 To 19, 22 To 31, 38 To 48, 50 To 64, 67, 69 To 79, 81 To 89, 91, _
92, 94 To 99, 101, 103, _
106 To 111, 113 To 120, 124 To 142, 145, 147, 148, 150, 154 To 156, 159, 161, 163, _
164, 168 To 170, _
172 To 174, 178 To 181, 183 To 185, 187, 189, 190, 194 To 218, 220 To 229, 231 To _
234, 240 To 246, 249 To 253
kalk = kalk + .Cells(z, (x * 4) + 5).Value
planfix = planfix + .Cells(z, (x * 4) + 6).Value
planfc = planfc + .Cells(z, (x * 4) + 7).Value
If .OLEObjects("CheckBox" & x).Object.Value = True Then
.Range("I" & z) = .Range("I" & z) + kalk
.Range("J" & z) = .Range("J" & z) + planfix
.Range("K" & z) = .Range("K" & z) + planfc
ElseIf .OLEObjects("CheckBox" & x).Object.Value = False Then
.Range("I" & z) = .Range("I" & z) - kalk
.Range("J" & z) = .Range("J" & z) - planfix
.Range("K" & z) = .Range("K" & z) - planfc
End If
Case Else
End Select
kalk = 0
planfix = 0
planfc = 0
Next z
End With
End Sub
Kann es an den Variablen liegen?
Gruß
Gordon