Array - Indexfehler oder kann keine Zuweisung an Datenfeld möglich
04.02.2020 14:01:03
Disciple
vielleicht kann mir wer von euch helfen. Ich habe folgendes Makro geschrieben, das mir entweder Laufzeitfehler 9 Indexfehler oder Fehler beim Kompilieren - Keine Zuweisung an Datenfeld möglich ausgibt, je nachdem, ob ich Hilfbereich LL und HilfsbereichAP mit (1 to 10, 1 to 3177) oder (1 to 8, 1 to 2738) dimensioniere ( Anzahl Zeilen, Anzahl Spalten) für die jeweiligen Arrays. Leider bin keine Erfahrung mit Arrays und weiß nicht, was ich machen muss. Lasse ich das weg, kommt Laufzeitfehler 9 Indexfehler. Die Hilfen und die Beiträge bisher im Forum bringen mich nicht weiter. Der wegkommentierte Bereich unten (ohne Array) funktioniert, mit Array statt Zellen einzeln behandeln geht es nicht mehr.
Der Fehler wird hier beim Debuggen angezeigt: If (HilfsbereichLL(3, spalte) > HilfsbereichLL(zeile, sasp)) And ( _
HilfsbereichLL(3, spalte) Playername) Then
Option Explicit
Dim Startzeit As Date
Dim Endzeit As Date
Dim lllsp As Integer
Dim aplsp As Integer
Dim apsp As Integer
Dim Playerzeile As Integer
Dim Playername As String
Dim sasp As Integer
Dim sesp As Integer
Dim block As Integer
Dim zeile As Integer
Dim spalte As Integer
Dim letztezeile As Integer
Dim letztezeileperformance As Integer
Dim HilfsbereichLL As Variant
Dim HilfsbereichAP As Variant
Public Sub Auswertung()
Startzeit = Now()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
letztezeile = Worksheets("Langläufer").Cells(Rows.Count, 1).End(xlUp).Row
lllsp = 2736
aplsp = 2736
Worksheets("Langläufer").Activate
Worksheets("Langläufer").Range("PZ4:DRE100").ClearContents
Worksheets("Auslastungsplanung").Range("C3:DAF8").ClearContents
HilfsbereichLL = Range(Worksheets("Langläufer").Cells(1, 1), Worksheets("Langläufer").Cells( _
letztezeile, 3177))
'Worksheets("Hilfstabelle").Range(Worksheets("Hilfstabelle").Cells(1, 1), Worksheets(" _
Hilfstabelle").Cells(letztezeile, 3177)) = HilfsbereichLL
HilfsbereichAP = Range(Worksheets("Auslastungsplanung").Cells(1, 1), Worksheets(" _
Auslastungsplanung").Cells(8, 2738))
'Worksheets("Hilfstabelle2").Range(Worksheets("Hilfstabelle2").Cells(1, 1), Worksheets(" _
Hilfstabelle2").Cells(8, 2738)) = HilfsbereichAP
For Playerzeile = 3 To 8
Playername = HilfsbereichAP(Playerzeile, 1)
For block = 1 To 40
sasp = 29 + (block - 1) * 10
sesp = 31 + (block - 1) * 10
For zeile = 4 To letztezeile
For spalte = 442 To 442 + lllsp
If (HilfsbereichLL(3, spalte) > HilfsbereichLL(zeile, sasp)) And ( _
HilfsbereichLL(3, spalte) ActiveSheet.Cells(zeile, sasp).Value) And _
_
_
(ActiveSheet.Cells(3, spalte).Value