mir hatte gestern Stefan mit folgendem Programmierbefehl sehr geholfen:
Dim i% i = ActiveCell.Value + 1 Range("A:A").Find(i, lookat:=xlWhole).Activate
In der Spalte A wird dabei also die Adresse gefunden, in der die um eins größere (oder auch um eins kleinere, dann natürlich mit -1 ) Zahl, als die in der aktiven Zelle steht. Doch für mich taucht jetzt das nächste Problem dabei auf. Wieder habe ich in der Spalte A aufsteigende Zahlen. Nur muss sich dabei ja nicht zwangsläufig der Wert der einzelnen Zahlen jeweils um eins erhöhen. Der Abstand von einer Zahl zur nächst höheren Zahl könnte ja auch 2, 5, oder 10000 sein.
Meine Frage also: Wie finde ich die nächstgrößere Zahl? (ohne eine Schleife einzusetzen, dass bekomme ich noch selbst hin.)
@SNB du scheinst hier wieder eine superkurze Lösung zu haben. Leider bekomme ich deinen Lösungsvorschlag (mangels Kenntnissen) nicht in mein VBA Programm eingebaut. Bitte ergänze dies, wenn möglich. Wäre daran doch sehr interessiert.
habe mich nochmal selbst damit beschäftigt eine möglichst geniale Lösung zu finden. Leider vergeblich. Die Formellösung von Uwe war bislang die kürzeste LSG. Leider ist dieser Ansatz aber recht langsam. Dein Vorschlag mit Application.match zu suchen ist auch eine interessante Alternative.
Vielleicht fällt dir ja noch eine gute Lösung ein.
Function F_snb(y) F_snb = "" If y <> "" Then F_snb = Cells(Application.Match(Application.Small(Range("A1:A100"), Application.Rank(y, [A1:A100], 1) + 1), [A1:A100], 0), 1).Address End Function