Диалоговое окно с элементами управления - выпадающий список.

Автор Slav, 3 октября 2025, 20:39

0 Пользователи и 1 гость просматривают эту тему.

Slav

Можно ли в Libre office calc создать пользователское диалоговое окно (или форму userform) с выпадающими списками и кнопкой "ввод данных", в которых список значений будет браться из определенных диапазонов ячеек одного листа, а при выборе значений из выпадающих списков и по нажатию кнопки "ввод данных"  эти значения записывались на другой лист и в новые строки? (В первом листе несколько столбцов с данными для выпадающих списков, а во втором листе данные которые нужно ввести из пользовательской формы).

sokol92

Цитата: Slav от  3 октября 2025, 20:39Можно ли в Libre office calc создать пользователское диалоговое окно (или форму userform)
Конечно, можно.

Если Вы хотите увидеть и протестировать более подробный ответ, то выгрузите файл-пример и описание требуемых действий.
Если у Вас уже есть пример для Excel - выгрузите его.
Владимир.

economist

Задачу валидировать ввод из диапазонов можно решить на порядок проще, если сделать ее в яч. листа на условном форматировании и формулах. А класть строку на другой лист может простейший макрос на 5 строк на единственной кнопке. На листе доступны все флажки, переклюки и др. эл. упр. как в диалогах. Данные - Проверка - Список дадут функционал справочников. Раскрасить лист можно под диалог, а можно пойти дальше и создать новый UX.

А вот программирование диалогов - сложное и для новичков совершенно непроизводительное.

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

sokol92

Цитата: economist от  4 октября 2025, 20:52А вот программирование диалогов - сложное и для новичков совершенно непроизводительное.
Насчет новичков мне трудно что-либо сказать.  :)
По моему мнению, программирование диалогов в LibreOffice проще и удобнее, чем программирование пользовательских форм (UserForm) в Microsoft Office.
Владимир.

economist

Сравните тонну кода на Диалог с одним макросом копирования с одного Листа (раскрашен как Диалог) на другой, в 5 работающих строк:

option VBASupport 1

Sub Main
set sh1 = ActiveSheet
set sh2 = Sheets("Лист2")
z = 5 ' смещение строк в "Базе", тоже можно легко посчитать в "Диалоге" формулой 
sh2.Range("A" & z).value = sh1.[A1].value
End Sub

Я думаю что путь с Диалогом в 10 раз дольше и сложнее, чем его имитация на Листе. А еще cделать Диалог красивым ну очень сложно. Ячейками листа можно сделать быстрее и ненамного хуже. Даже подобие Данные - Форма... сделать Диалогом гораздо труднее.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...

sokol92

Цитата: economist от  5 октября 2025, 14:13Я думаю что путь с Диалогом в 10 раз дольше и сложнее, чем его имитация на Листе.
Я не понимаю, о чем идет речь.
Типичный диалог в LO Calc (на мой взгляд) - "Найти и заменить" (Ctrl + H).
Такое диалоговое окно сравнительно быстро создается стандартными средствами Basic IDE.
Владимир.

economist

Недостаточно наполнить списки значениями, бизнес-логика и контроль будет только кодом, а на листе это формулы и УФ, что обычно проще.
Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...