Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1784to1788
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Nach nächster Zelle mit Werten suchen

Nach nächster Zelle mit Werten suchen
06.10.2020 09:31:00
Justin
Guten Morgen,
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!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Angaben sind mE so noch nicht eindeutig, ...
06.10.2020 11:50:38
neopa
Hallo Justin ,
... wenn ich mir Deine ermittelten Werte ab P54 nach unten anschaue.
Logischer erscheint mir da folgende Formel in L8:
=WENN(B8="";"";WENN(A7="";VERWEIS(9^9;L7:L$8)+1;1))
und diese Formel nach rechts und unten ziehend kopiert.
Oder?
Gruß Werner
.. , - ...
AW: Angaben sind mE so noch nicht eindeutig, ...
06.10.2020 14:07:08
Justin
Hallo Werner, hatte es auch erst mit ganz vielen IF/WENN versucht, Excel mag aber leider nicht mehr als 64 nested IFs und es gibt viele Fälle wo der gesucht Wert in 200 Reihen darüber steht..
Für alle die es interessiert, ich habe es mittlerweile (deutlich einfacher) gelöst bekommen:
Public Function incrOffset(ByVal currRange As Range) As Integer
Dim maxOffset As Integer
maxOffset = 500
Dim looper2 As Integer
For looper2 = 1 To maxOffset
If currRange.Offset(looper2 * -1, 0).Value  "" Then
incrOffset = currRange.Offset(looper2 * -1, 0).Value + 1
Exit Function
End If
Next
End Function

Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige