My previous version was based on a PyXLL macro; the new version is based on a PyXLL function (set as macro=True).
@xl_func(
"str dropdown_name, str filter_string: var",
none_value=" » » »",
volatile=False,
macro=True,
)
def select_from_PyXLL_dropdown_function_TR(dropdown_name=None, filter_string=""):
"""[PyXLL] Execute a PySide6 dialog based on a (pre-coded) list of lists
:param dropdown_name: [apples,countries,three letter names,cars] Defaults to None
:param filter_strung: a filter pattern (regex allowed). Defaults to ""
"""
When called, this new function presents a PySide6 QDialog dropdown incorporating the following features:
- short and simple
- dropdown lists can be set in Python as a global variable (executed once, no recalculation)
- avoids the restrictions of Excel built-in dropdowns
- dropdown is available in any workbook, any sheet
- regex filtering
- dropdown index is set to current value
- custom None value is returned to avoid formula overwrite
- calling cell address or cell name (if the cell is named) is built into the dialog title
- a default list is coded
- no macro buttons, clean interface
- thanks to Tony Roberts for his assistance


