Probleme beim mit datentypen beim erhöhen der Spalten nummer

josefhader

Grünschnabel
Habe ein problem beim erhöhen der Spaltennummer
adie aufgageb ist folgende ich muss die das makro sprich die spalten anzahl so oft erhöhen so viele werte ich in einer splate eingegebn werden diese weren aber immer erhöht
meine code sieht folgender masßen aus :
code:
Public Sub berechnen()
Dim varArrayX As Variant, varArrayY As Variant
Dim intIndex As Variant
Dim iindex As Variant
iindex = 0

If Cells(1 + iindex, 5) Eqv 0 Then
iindex = iindex + 1
varArrayX = Split(Cells(1 + (iindex), 22), ";") 'Zelle mit dem beschädigten durchmesser
varArrayY = Split(Cells(1 + (iindex), 24), ";") 'Zelle mit dem Rollendurchmesser
varArrayZ = Split(Cells(1 + (iindex), 23), ";") 'Zelle mit dem Gewicht der Beschädigten Rolle
varArrayK = Split(Cells(1 + (iindex), 26), ";") 'Zelle mit durchschnittlichen Durchmesser
If UBound(varArrayX) = UBound(varArrayY) Then
If CDec(varArrayY(intIndex)) <= 0.95 * CDec(varArrayK(intIndex)) Then
For intIndex = 0 To UBound(varArrayX)
Cells(intIndex + 1 + (iindex), 25) = ((400 * CDec(varArrayY(intIndex)) * (CDec(varArrayK(intIndex)) - CDec(varArrayY(intIndex))) / (CDec(varArrayK(intIndex)) ^ 2 - (Cells(1 + iindex, 1)) ^ 2)) / 100) * (400 * CDec(varArrayX(intIndex)) * (CDec(varArrayY(intIndex)) - CDec(varArrayX(intIndex))) / (CDec(varArrayY(intIndex)) ^ 2 - (Cells(1 + (iindex), 1)) ^ 2)) / 100 * (CDec(varArrayZ(intIndex)))
Next
Else


For intIndex = 0 To UBound(varArrayX)
Cells(intIndex + 1 + (iindex), 25) = (400 * CDec(varArrayX(intIndex)) * (CDec(varArrayY(intIndex)) - CDec(varArrayX(intIndex))) / (CDec(varArrayY(intIndex)) ^ 2 - (Cells(1 + iindex, 1)) ^ 2)) / 100 * (CDec(varArrayZ(intIndex)))
'Ausgabe in Spalte B
Next
End If
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


End If
End Sub


ich bekomme immer die fehlermeldung typen unverträglich was soll ich tun?
danke für euere hilfe
 
Es wäre vielleicht ganz hilfreich, wenn du uns sagst, an welcher Stelle genau die Fehlermeldung kommt.
 
Also ich könnte mir vorstellen, dass varArrayX oder varArrayY gar keine Arrays sind, weil vielleicht die vorrausgehende Split-Funktion nicht richtig gearbeitet hat. Prüfe am besten mal (zum Debuggen) vor der Zeile, wo der Fehler auftritt mittels der IsArray-Funktion, ob in der Variable auch wirklich ein Array steht. Zum Beispiel so:
Code:
    MsgBox "Variable X ist ein Array: " & IsArray(varArrayX) & vbCrLf _
    & "Variable y ist ein Array: " & IsArray(varArrayY)
 
Zurück