Войти

Показать полную графическую версию : Microsoft Excel Online


poisonkit
28-12-2021, 11:48
Доброго времени суток.
Задался вопросом вести отчетность через таблицы Эксэль онлайн.
Вроде все удобно, с любого рабочего места можно зайти, внести изменения или посмотреть...
Теперь о задаче:
В этом сервисе имеется возможность защитить как лист, так и диапазон.
Сотрудники иногда химичат с "задним числом", ну т.е. идет так:
1 декабря | Сумма такая-то | Снято столько | Остаток такой-то
2 декабря .... и так далее....
https://a.radikal.ru/a15/2112/42/1ae3ba78363c.png

Так вот, можно как-то настроить динамический защищенный диапазон?
Что-бы система (сервис) разрешала редактировать строчку с текущим числом, а остальные строчки были защищены? Ну только создатель мог редактировать...
Мне кажется что это как-то можно сделать, гуглил... но ничего не нашел дельного...

Очень надеюсь, что такую функцию можно реализовать.

Iska
28-12-2021, 14:24
Такая функция реализована в 1C.

poisonkit
28-12-2021, 17:11
Такая функция реализована в 1C. »
Здорово )
А по моему вопросу есть мысли, как реализовать? Или это невозможно?

Iska
28-12-2021, 18:19
По Вашему вопросу — нужна программа учёта с данным функционалом. Точка.

Phoenix
28-12-2021, 20:05
Я бы оформил подписку на Office 365 и "расшаривал" в нем нужные документы (в т.ч. Exel) своим сотрудникам.
Ну а там уже открывается широкий спектр возможностей, в т.ч. и по защите от редактирования, в различных вариациях.

bredych
29-12-2021, 09:40
Насколько знаю, в экселе не предусмотрено автоматическое блокирование отдельных полей по дате.
Это калькулятор, а не навижн и его аналоги.

a_axe
29-12-2021, 15:07
poisonkit, на VBA можно написать разного рода костыли. Если уделить этому много времени и тщательно проработать, то на выходите вы получите некое приближенное подобие того, что советует вам Iska. Проблема в том, что по факту придется очень много раз все переделывать, так как в процессе задача у вас будет трансформироваться и усложняться. В пределе вы и получите программу учета с функционалом, но по факту до такого состояния эксель вы не проапгрейдите. Так стоит ли оно того?

Скрипты доступны и для офиса онлайн тоже: Запись, редактирование и создание сценариев Office в Excel в Интернете (https://docs.microsoft.com/ru-ru/office/dev/scripts/tutorials/excel-tutorial),
плюс там же Сценарии Office в Excel для Интернета (https://docs.microsoft.com/ru-ru/office/dev/scripts/overview/excel#action-recorder)
Необходимые компоненты
Перед началом работы с этим учебником у вас должен быть доступ к сценариям Office. Для этого требуется следующее:

Excel в Интернете.
План Microsoft 365 для коммерческих или образовательных организаций, включающий сценарии.
Поскольку у меня нет подписки, не подскажу, как реализовать эту задачу в рамках сценариев.

На VBA я подобную задачу когда-то решал, алгоритм был такой, что при открытии код проверял наличие записи в реестре, если находил - то снимал защиту с диапазона и показывал ранее скрытые столбцы, а перед каждым сохранением - ставил защиту и скрывал определенные столбцы, после сохранения - снимал защиту и показывал эти столбцы обратно (поскольку пользователь без записи в реестре при открытии фала мог просто запретить макрос и получить доступ к этим секретным столбцам). Без пароля, сохраненного в реестре доступа было не получить, но в принципе подобная защита снимается без особенных проблем. Смысл был такой, чтобы непосвященные не могли увидеть содержимое столбцов, но могли редактировать все остальное.

Вам нужно делать что-то аналогичное, но дать толковую информацию, что могут эти самые "сценарии Excel в интернете" я к сожалению не смогу.

poisonkit
18-01-2022, 10:17
Ух... Значит в обычном Microsoft Excel Online это не возможно реализовать. Необходимо каждый день заходить и блокировать ручками, верно?

poisonkit
18-01-2022, 10:32
Смотрел в уроке про инструмент проверки данных:
https://b.radikal.ru/b00/2201/23/a2ef63ee29c2.png
Можно указать дату, и запрет на редактирование...
или указать к примеру в ячейке текущую дату и только эту ячейку можно редактировать...
Но как автоматизировать.....

a_axe
18-01-2022, 10:46
Значит в обычном Microsoft Excel Online это не возможно реализовать. Необходимо каждый день заходить и блокировать ручками, верно? »
poisonkit, чтобы дать обоснованный ответ, нужно иметь доступ к сценариям, а у меня его нет.

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

Потом вопрос - а откуда эта сегодняшняя дата берется? Если с ПК пользователя (ну сие конечно вряд ли, а вот на VBA это было актуально) - он переводит дату на своем ПК назад и получает доступ к нужной дате. Файл вообще можно скопировать домой, взломать, отредактировать и заменить, если есть соответствующий доступ, об этом тоже не надо забывать.

Затем, на VBA получить доступ к тексту кода - не самая сложная задача, и если хранить пароль прямо в тексте кода, то в принципе пользователь может его просто-напросто взломать (есть куча программ для этого) и скопировать из текста. Поскольку автор вопроса хотел именно такую защиту - пароль пришлось хранить в реестре, и у не имевших доступа и пароля на пк просто не было. Встанет ли подобный вопрос в онлайне - кто ж его знает.

Ну и так далее. Алгоритм не такой простой, как кажется на первый взгляд. Как эти вопросы решаются в рамках онлайна? Тут только открывать и разбираться нужно.

poisonkit
18-01-2022, 12:05
Вроде как получается в стандартном онлайн экселе...
Использую формулу:
=IF(E1<>TODAY())
Но все равно что-то не то...
Нужно условие: Если дата в ячейке не совпадает с текущей датой.
Подскажите плз как правильно.

poisonkit
18-01-2022, 13:35
Вот так будет нагляднее:
https://a.radikal.ru/a08/2201/eb/46437e33b21a.png

Установлен запрет. Тогда как правильно формулу написать? Если текущая дата не совпадает с указанной?

a_axe
18-01-2022, 13:55
poisonkit, вопрос - что помешает другому юзеру удалить эту проверку, отредактировать файл, а потом снова создать эту проверку заново? Если есть такое понимание - тогда уже можно задаваться вопросом "а как сделать".

poisonkit
18-01-2022, 14:38
poisonkit, вопрос - что помешает другому юзеру удалить эту проверку, отредактировать файл, а потом снова создать эту проверку заново? Если есть такое понимание - тогда уже можно задаваться вопросом "а как сделать". »
Логично. К сожалению работает только защита листа или диапазона, но никак не меню...
Тогда надо искать иной способ защиты ячеек от изменений... А я ведь только формулу подобрал, которая нужна... оказывается напрасно...




© OSzone.net 2001-2012