Hallo,
Ich habe vor für ein Datenfeld aus einem Tabellensheet eine Prozedur in VBA zu schreiben und habe den folgenden Code in VBA geschrieben und ausprobiert, leider hakt es.
Zum Verständnis des Codes: Ziel soll es sein die verschiedenen Breiten von einer verschiedenen Anzahl von Kisten aufzuaddieren bis eine bestimmte Breite x erreicht ist. Wenn eine Kistenart aufgebraucht ist soll zur nächsten übergesprungen werden. Die Kisten habe ich vorher nach der Größe sortiert. Sie können also Spaltenmäßig von oben nach unten abgearbeitet werden- Die Breiten und Anzahl der Kisten stehen in zwei Spalten in einem Excelsheet. Diese wollte ich durch zwei Arrays in in die Prozedur einarbeiten. Die Prozedur soll sich dabei solange aufrufen bis die Breite erreicht ist.
ich bekomme die Fehlermeldung : Unverträglicher Typ: Datenfeld oder benutzerdefinierter Typ erwartet und eine Markierung bei Kistenbreite
Ich habe es im Codemarkiert
Ich habe vor für ein Datenfeld aus einem Tabellensheet eine Prozedur in VBA zu schreiben und habe den folgenden Code in VBA geschrieben und ausprobiert, leider hakt es.
Zum Verständnis des Codes: Ziel soll es sein die verschiedenen Breiten von einer verschiedenen Anzahl von Kisten aufzuaddieren bis eine bestimmte Breite x erreicht ist. Wenn eine Kistenart aufgebraucht ist soll zur nächsten übergesprungen werden. Die Kisten habe ich vorher nach der Größe sortiert. Sie können also Spaltenmäßig von oben nach unten abgearbeitet werden- Die Breiten und Anzahl der Kisten stehen in zwei Spalten in einem Excelsheet. Diese wollte ich durch zwei Arrays in in die Prozedur einarbeiten. Die Prozedur soll sich dabei solange aufrufen bis die Breite erreicht ist.
Visual Basic-Quellcode
- Public Function Kisten()
- Dim Kistenbreite(1 To 10) As Integer
- Worksheets("Tabelle1").Range("A1:A10").Value = Kistenbreite
- Dim Kistenanzahl(1 To 10) As Integer
- Worksheets("Tabelle1").Range("B1:B10").Value = Kistenanzahl
- Dim Hvb As Integer
- Hvb = 0
- Dim x As Integer
- x = Worksheets("Tabelle1").Range("A11").Value
- Call packen(Kistenbreite(1), Kistenanzahl(1), Hvb, x) ' Markierung bei Kistenbreite
- End Function
- Public Sub packen(Breite() As Integer, Anzahl() As Integer, d As Integer, f As Integer)
- Dim a As Integer
- Dim b As Integer
- d = LBound(Breite) + d
- Dim e As Integer
- e = LBound(Anzahl) - 1
- Do
- Call packen(Breite(a), Anzahl(b), d)
- Loop Until e = 0 Or d < f
- If e = 0 Then
- Call packen(LBound(Breite(a + 1)), Anzahl(b + 1), d)
- Else
- MsgBox ("Der Wert ist" & d)
- End If
- End Sub
ich bekomme die Fehlermeldung : Unverträglicher Typ: Datenfeld oder benutzerdefinierter Typ erwartet und eine Markierung bei Kistenbreite
Ich habe es im Codemarkiert
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Becks221“ ()