Probleme mit index und ubound befehl kann mir wer helfen

josefhader

Grünschnabel
Habe probleme mit dem intindex wenn ich in den Zellen x,y,z mehr als eine zahl eingebe bekomme ich den fehler:
Index außerhalb gültigen bereichs
Hier ist mein code:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call berechnen
End Sub





Public Sub berechnen()


Dim varArrayX As Variant, varArrayY As Variant, varArrayZ As Variant, varArrayK As Variant
Dim intIndex As Long
Dim i As Long
i = 0

Do While Cells((3 + i), 5) > 1000
i = i + 1
varArrayX = Split(Cells((i + 2), 22), ";") 'Zelle mit dem beschädigten durchmesser
varArrayY = Split(Cells((i + 2), 24), ";") 'Zelle mit dem Rollendurchmesser
varArrayZ = Split(Cells((i + 2), 23), ";") 'Zelle mit dem Gewicht der Beschädigten Rolle
varArrayK = Split(Cells((i + 2), 26), ";") 'Zelle mit durchschnittlichen Durchmesser
If UBound(varArrayX) = UBound(varArrayY) Then
For intIndex = 0 To UBound(varArrayX)
If CDec(varArrayY(intIndex)) <= 0.95 * CDec(varArrayK(intIndex)) Then
Cells(intIndex + (i + 2), 25) = ((400 * CDec(varArrayY(intIndex)) * (CDec(varArrayK(intIndex)) - CDec(varArrayY(intIndex))) / (CDec(varArrayK(intIndex)) ^ 2 - (Cells((i + 2), 18)) ^ 2)) / 100) * (400 * CDec(varArrayX(intIndex)) * (CDec(varArrayY(intIndex)) - CDec(varArrayX(intIndex))) / (CDec(varArrayY(intIndex)) ^ 2 - (Cells((i + 2), 18)) ^ 2)) / 100 * (CDec(varArrayZ(intIndex)))
Else
Cells(intIndex + (i + 2), 25) = (400 * CDec(varArrayX(intIndex)) * (CDec(varArrayY(intIndex)) - CDec(varArrayX(intIndex))) / (CDec(varArrayY(intIndex)) ^ 2 - (Cells((i + 2), 18)) ^ 2)) / 100 * (CDec(varArrayZ(intIndex)))
'Ausgabe in Spalte B
End If
Next
Else
MsgBox "In den Zelle für Beschädigter- Eingesetzte Rollendurchmesser und Rollen gewicht ist die Anzhal von Zahlen unterschiedlich." & vbLf & "Programmabbruch.", 16, "Fehler"

End If

Loop



End Sub


bitte kann mir jemand einen tipp geben
 
Zwei Dinge:

1. Für Quellcode bitte auch den Code-Tag nutzen. Das ist einfach übersichtlicher.
2. Es wäre hilfreich, wenn Du uns mitteilst, an welcher Stelle der Fehler auftritt.

Bis dahin...
 
Zurück