Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Работа в Excel в манере СУБД - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа в Excel в манере СУБД (VBA+Excel)
Работа в Excel в манере СУБД
SGerman Дата: Четверг, 07.07.2016, 20:32 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 4 ±
Замечаний: 20% ±

Excel 2003
Здравствуйте !

Можно ли так "ограничить" работу пользователя с листом Excel, чтобы он не мог "уйти" со строчки, пока не завершит ввод во все обязательные поля (ячейки) и т.д. либо не удалит ее. Т.е. "имитировать" редактирование строки в манере, например, Access ? Скажу сразу, форма тут не проходит ибо пользователь должен иметь возможность работать именно с таблицей, а не с отдельными ее строчками (как это делается в форме)
Мне думается можно, но придется "ловить" SelectCell, а это чревато большим кодом с кучей проверок, что серьезно тормозит работу.
Есть ли в принципе более "кошерные" решения ? Жаль что нет события SelectRow :)

Спасибо за отклики


Мудрость приходит со старостью. Но иногда старость приходит одна :)
 
Ответить
СообщениеЗдравствуйте !

Можно ли так "ограничить" работу пользователя с листом Excel, чтобы он не мог "уйти" со строчки, пока не завершит ввод во все обязательные поля (ячейки) и т.д. либо не удалит ее. Т.е. "имитировать" редактирование строки в манере, например, Access ? Скажу сразу, форма тут не проходит ибо пользователь должен иметь возможность работать именно с таблицей, а не с отдельными ее строчками (как это делается в форме)
Мне думается можно, но придется "ловить" SelectCell, а это чревато большим кодом с кучей проверок, что серьезно тормозит работу.
Есть ли в принципе более "кошерные" решения ? Жаль что нет события SelectRow :)

Спасибо за отклики

Автор - SGerman
Дата добавления - 07.07.2016 в 20:32
JayBhagavan Дата: Четверг, 07.07.2016, 20:36 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 187
Репутация: 27 ±
Замечаний: 0% ±

Excel 2010
SGerman, здравия.
Кроме события выделения другое на ум не приходит.
Насчёт "SelectRow" - так можно обработать сколько столбцов и строк в выделении и получите обработку выделенной строки.


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
 
Ответить
СообщениеSGerman, здравия.
Кроме события выделения другое на ум не приходит.
Насчёт "SelectRow" - так можно обработать сколько столбцов и строк в выделении и получите обработку выделенной строки.

Автор - JayBhagavan
Дата добавления - 07.07.2016 в 20:36
SLAVICK Дата: Четверг, 07.07.2016, 22:27 | Сообщение № 3
Группа: Модераторы
Ранг: Старожил
Сообщений: 1962
Репутация: 669 ±
Замечаний: 0% ±

2007,2010,2013,2016
а я бы сделал так:
после изменения первой (любой) ячейки в строке:
защищаем ячейки ниже и выше текущей строки. и активируем следующую ячейку.
Включаем защиту листа с запретом выделения защищенных ячеек.
После изменения всех нужных полей - снимаем защиту с ячеек и листа.

Таким образом Юзер физически не сможет покинуть строку, пока не внесет все данные :D .


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщениеа я бы сделал так:
после изменения первой (любой) ячейки в строке:
защищаем ячейки ниже и выше текущей строки. и активируем следующую ячейку.
Включаем защиту листа с запретом выделения защищенных ячеек.
После изменения всех нужных полей - снимаем защиту с ячеек и листа.

Таким образом Юзер физически не сможет покинуть строку, пока не внесет все данные :D .

Автор - SLAVICK
Дата добавления - 07.07.2016 в 22:27
SGerman Дата: Пятница, 08.07.2016, 18:49 | Сообщение № 4
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 4 ±
Замечаний: 20% ±

Excel 2003
Таким образом Юзер физически не сможет покинуть строку, пока не внесет все данные


Решение принято к сведению :)
Правда, тут множество "косяков", начиная с того, как программа будет определять, что пользователь закончил ввод.

Кроме того, придется вводить какой-то диалог на случай если он желает отменить ввод новой строки или редактирование старой с восстановлением значений до начала правки. Эксель все же не СУБД и ничего не знает о "записях", "блокировках", "целостности", "транзакциях" и т.п.
И блокировка всех остальных строк тоже не айс.
Понимаю, "что хочу того, чего сам не знаю". По крайней мере так может выглядеть со стороны.


Мудрость приходит со старостью. Но иногда старость приходит одна :)
 
Ответить
Сообщение
Таким образом Юзер физически не сможет покинуть строку, пока не внесет все данные


Решение принято к сведению :)
Правда, тут множество "косяков", начиная с того, как программа будет определять, что пользователь закончил ввод.

Кроме того, придется вводить какой-то диалог на случай если он желает отменить ввод новой строки или редактирование старой с восстановлением значений до начала правки. Эксель все же не СУБД и ничего не знает о "записях", "блокировках", "целостности", "транзакциях" и т.п.
И блокировка всех остальных строк тоже не айс.
Понимаю, "что хочу того, чего сам не знаю". По крайней мере так может выглядеть со стороны.

Автор - SGerman
Дата добавления - 08.07.2016 в 18:49
МВТ Дата: Пятница, 08.07.2016, 21:15 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 476
Репутация: 136 ±
Замечаний: 0% ±

Excel 2007
Обдумайте вариант с вводом через форму
 
Ответить
СообщениеОбдумайте вариант с вводом через форму

Автор - МВТ
Дата добавления - 08.07.2016 в 21:15
SGerman Дата: Пятница, 08.07.2016, 21:19 | Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 97
Репутация: 4 ±
Замечаний: 20% ±

Excel 2003
Обдумайте вариант с вводом через форму


Выше я писал, что форма не годится


Мудрость приходит со старостью. Но иногда старость приходит одна :)
 
Ответить
Сообщение
Обдумайте вариант с вводом через форму


Выше я писал, что форма не годится

Автор - SGerman
Дата добавления - 08.07.2016 в 21:19
RAN Дата: Пятница, 08.07.2016, 21:46 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4419
Репутация: 872 ±
Замечаний: 0% ±

2010
чтобы он не мог "уйти" со строчки, пока не завершит ввод

ибо пользователь должен иметь возможность работать именно с таблицей

У вас используется 16000 столбцов? Или религия форму не дозволяет?
Вопрос, с учетом отсутствия примера, настолько расплывчат, что ответить, по сути, нечего.


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение
чтобы он не мог "уйти" со строчки, пока не завершит ввод

ибо пользователь должен иметь возможность работать именно с таблицей

У вас используется 16000 столбцов? Или религия форму не дозволяет?
Вопрос, с учетом отсутствия примера, настолько расплывчат, что ответить, по сути, нечего.

Автор - RAN
Дата добавления - 08.07.2016 в 21:46
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Работа в Excel в манере СУБД (VBA+Excel)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2017 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!