ich habe gestern schon ewig versucht es alleine hinzubekommen, bin aber aufgrund meiner beschränkten Kenntnisse nicht erfolgreich gewesen. In der angehangen XLSM findet Ihr meine Situation: Am Beispiel der rot markierten Zelle (O25), möchte ich wenn die offset (-1,-1) Zelle einen Wert hat, das O25 1 ist, wenn in der Zelle O24 ein Wert drin ist, soll O25 deren Wert +1 bekommen. Wenn keiner der beiden Fälle wahr ist, soll nach der nächsten Zelle in Spalte O gesucht werden die einen Wert hat (hier im Beispiel O18 mit Wert 3). Fälle 1 & 2 liessen sich auch in Excel lösen, 3 allerdings nicht aufgrund der top-down Suche.
Anstatt in Spalten K-T, können alternativ auch A-J benutzt werden um die Werte in K-T festzulegen
Ich habe den Code den ich bis jetzt aufstellen konnte hier hochgeladen: https://www.herber.de/bbs/user/140684.xlsm
Und hier steht er nochmal:
Public Function AssignAccountNumber(ByVal rangeX As Range) As Integer
Dim arrayBottom As Range
Dim arrayTop As Range
Dim immediateParent As Range
Dim immediateSibling As Range
arrayBottom = rangeX.Offset(-1, 0)
arrayTop = rangeX.End(xlUp).Offset(1, 0)
immediateParent = rangeX.Offset(-1, -1)
immediateSibling = rangeX.Offset(-1, 0)
Dim arrayAbove() As Range
Dim arrayRows As Integer
arrayAbove() = Range(arrayBottom, arrayTop)
arrayRows = arrayAbove.Rows.Count
Dim looper As Integer
If immediateParent.Value "" Then
rangeX.Value = 1
ElseIf immediateSibling.Value "" Then
rangeX.Value = immediateSibling.Value + 1
Else
For looper = arrayRows To 1
If arrayAbove(looper, 0) "" Then
Set AssignAccountNumber = arrayAbove(looper, 0).Value + 1
Next
End Function
Vielen Dank im Voraus an alle die sich die Mühe machen über diese Problem nachzudenken und mir helfen könnten wie ich es löse!