Можно ли так "ограничить" работу пользователя с листом Excel, чтобы он не мог "уйти" со строчки, пока не завершит ввод во все обязательные поля (ячейки) и т.д. либо не удалит ее. Т.е. "имитировать" редактирование строки в манере, например, Access ? Скажу сразу, форма тут не проходит ибо пользователь должен иметь возможность работать именно с таблицей, а не с отдельными ее строчками (как это делается в форме) Мне думается можно, но придется "ловить" SelectCell, а это чревато большим кодом с кучей проверок, что серьезно тормозит работу. Есть ли в принципе более "кошерные" решения ? Жаль что нет события SelectRow :)
Спасибо за отклики
Здравствуйте !
Можно ли так "ограничить" работу пользователя с листом Excel, чтобы он не мог "уйти" со строчки, пока не завершит ввод во все обязательные поля (ячейки) и т.д. либо не удалит ее. Т.е. "имитировать" редактирование строки в манере, например, Access ? Скажу сразу, форма тут не проходит ибо пользователь должен иметь возможность работать именно с таблицей, а не с отдельными ее строчками (как это делается в форме) Мне думается можно, но придется "ловить" SelectCell, а это чревато большим кодом с кучей проверок, что серьезно тормозит работу. Есть ли в принципе более "кошерные" решения ? Жаль что нет события SelectRow :)
SGerman, здравия. Кроме события выделения другое на ум не приходит. Насчёт "SelectRow" - так можно обработать сколько столбцов и строк в выделении и получите обработку выделенной строки.
SGerman, здравия. Кроме события выделения другое на ум не приходит. Насчёт "SelectRow" - так можно обработать сколько столбцов и строк в выделении и получите обработку выделенной строки.JayBhagavan
Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
а я бы сделал так: после изменения первой (любой) ячейки в строке: защищаем ячейки ниже и выше текущей строки. и активируем следующую ячейку. Включаем защиту листа с запретом выделения защищенных ячеек. После изменения всех нужных полей - снимаем защиту с ячеек и листа.
Таким образом Юзер физически не сможет покинуть строку, пока не внесет все данные .
а я бы сделал так: после изменения первой (любой) ячейки в строке: защищаем ячейки ниже и выше текущей строки. и активируем следующую ячейку. Включаем защиту листа с запретом выделения защищенных ячеек. После изменения всех нужных полей - снимаем защиту с ячеек и листа.
Таким образом Юзер физически не сможет покинуть строку, пока не внесет все данные .SLAVICK
Таким образом Юзер физически не сможет покинуть строку, пока не внесет все данные
Решение принято к сведению :) Правда, тут множество "косяков", начиная с того, как программа будет определять, что пользователь закончил ввод.
Кроме того, придется вводить какой-то диалог на случай если он желает отменить ввод новой строки или редактирование старой с восстановлением значений до начала правки. Эксель все же не СУБД и ничего не знает о "записях", "блокировках", "целостности", "транзакциях" и т.п. И блокировка всех остальных строк тоже не айс. Понимаю, "что хочу того, чего сам не знаю". По крайней мере так может выглядеть со стороны.
Таким образом Юзер физически не сможет покинуть строку, пока не внесет все данные
Решение принято к сведению :) Правда, тут множество "косяков", начиная с того, как программа будет определять, что пользователь закончил ввод.
Кроме того, придется вводить какой-то диалог на случай если он желает отменить ввод новой строки или редактирование старой с восстановлением значений до начала правки. Эксель все же не СУБД и ничего не знает о "записях", "блокировках", "целостности", "транзакциях" и т.п. И блокировка всех остальных строк тоже не айс. Понимаю, "что хочу того, чего сам не знаю". По крайней мере так может выглядеть со стороны.SGerman
Мудрость приходит со старостью. Но иногда старость приходит одна :)
ибо пользователь должен иметь возможность работать именно с таблицей
У вас используется 16000 столбцов? Или религия форму не дозволяет? Вопрос, с учетом отсутствия примера, настолько расплывчат, что ответить, по сути, нечего.
ибо пользователь должен иметь возможность работать именно с таблицей
У вас используется 16000 столбцов? Или религия форму не дозволяет? Вопрос, с учетом отсутствия примера, настолько расплывчат, что ответить, по сути, нечего.RAN