Achtung Anfänger: Kleines VBA If-Then dynam Array
21.08.2019 11:34:12
F
ich habe mich vor einigen Tagen an das Thema VBA rangesetzt und kann die Beispiele, die ich mir bisher angeschaut habe, gut nachvollziehen. Aber beim ersten eigenen Makro hakt es leider ein wenig.
In der ganzen Spalte Z soll Excel nach den Begriff "Angebotspreis" suchen. Steht dieser Begriff in einer Zeile, soll der Wert in Spalte Q neu berechnet werden als Differenz aus den Spalten S - T. Konkret: steht in Z5 "Angebotspreis", soll Q5 als S5-T5 neu berechnet werden.
Leider erhalte ich bei meinen Makro die Ausgabe "Laufzeitfehler" und kann mir keinen Reim drauf machen, was Excel stört.
In meinen Makro taucht die Spalte AA auf, da ich diese immer gefüllt ist und keine leeren Zellen in dieser existieren. Somit wollte ich diese als "Hilfsspalte" zur Ermittlung der Arraygröße benutzen.
Sub WertderVorperiodekorrigieren()
Dim size As Integer
Dim i As Integer
Dim Wert_Vorperiode()
'Anzahl der Einträge in Spalte AA ermitteln und der Variablen size zuweisen
size = WorksheetFunction.CountA(Worksheets("Datenbank-WGM").Columns(27))
'Größe des Arrays festlegen
ReDim Wert_Vorperiode(size - 1)
'Wenn in Spalte Z "Angebotspreis" steht, so soll in Spalte Q der Wert neu berechnet werden
For i = 1 To size
If Cells(i, 26).Value = "Angebotspreis" Then
Wert_Vorperiode(i, 17) = (Cells(i, 19) - Cells(i, 20))
Else
Wert_Vorperiode(i, 17) = Cells(i, 17)
End If
Next i
End Sub
Ich hoffe ich habe nicht kompletten Mist ins Makro geschrieben und ihr könnt mir helfen :)
Beste grüße