Re: Suchen nach nächst kleinerer Zahl?
Verfasst: Mo, 24.03.2025 14:27
Ich hab das nochmal etwas angepasst und an das Ereignis »Inhalt geändert« von Tabelle3 gebunden:
Zum Testen:
Code: Alles auswählen
from bisect import bisect_left
def search_and_select(event):
if not event.AbsoluteName.endswith("$D$2"):
return
nummer = event.Value
if not nummer:
return
doc = XSCRIPTCONTEXT.getDocument()
tab_2 = doc.Sheets[1]
tab_3 = event.Spreadsheet
ctrl = doc.CurrentController
in_use = tab_3["B:B"].queryContentCells(7)[0].DataArray
existing_nums = tab_2["A:A"].queryContentCells(7)[0].DataArray
try:
pos = in_use.index( (nummer,) )
ctrl.select( tab_3[pos, 1] )
return
except ValueError:
pos = bisect_left( existing_nums, (nummer,) )
if existing_nums[pos][0] == nummer:
(t:=tab_3[len(in_use),1]).Value = nummer
ctrl.select( t )
return
else:
ctrl.select( tab_2[pos-1, 0] )