Skip to content

Instantly share code, notes, and snippets.

Created September 26, 2017 03:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/ba3079df0451dff08933b7544d0a3e9d to your computer and use it in GitHub Desktop.
Save anonymous/ba3079df0451dff08933b7544d0a3e9d to your computer and use it in GitHub Desktop.
История изменений excel

История изменений excel



Ссылка на файл: >>>>>> http://file-portal.ru/История изменений excel/


Ведение журнала сделанных в книге изменений
Track changes in a Shared Workbook
Контроль версий: управление версиями документа Excel и отслеживание изменений книги
























Проблема очень актуальна для больших организаций, когда одним файлом пользуются несколько человек. И каждый может сделать какие-то свои изменения. И конечно всегда наступает момент когда надо узнать - а кто сделал то или иное изменение? Возможно просто для информации, а бывает и хуже, когда необходимо узнать кто внес конкретное изменение, которое делать было нельзя и по возможности восстановить хоть часть того, что было. Отслеживание изменений при помощи встроенных средств - Общий доступ к книге Есть относительно простой способ отслеживать изменения если это можно так назвать: В появившемся окне поставить галочку разрешить изменять файл нескольким пользователям одновременно Allow changes by more then one user at the same time: Далее можно настроить срок хранения лога изменений, конфликты и пр - вкладка Подробнее Advanced: Регистрация изменений Track changes. Пункты говорят сами за себя, можно отметить лишь один нюанс: Для противоречивых изменений Conflicting changes between users. Но оба эти пункта имеют большой недостаток: Поэтому без необходимости лучше их не использовать Теперь самое главное: Выделять исправления на экране Highlight changes on screen: В левом верхнем углу ячейки в этом случае появится черный треугольник, а при наведении на эту ячейку появится примечание с информацией о том кто изменил, когда и на что: Вносить изменения на отдельный лист List changes on a new sheet: После того, как книге дан общий доступ книгу одновременно могут менять несколько пользователей. Однако я не рекомендую делать это без крайней необходимости, так как одновременный доступ к файлам Excel реализован очень плохо и работает это нестабильно. В какой-то момент файл может просто отказаться работать и все данные будут утеряны. Так же неизбежно будут возникать спорные ситуации, когда изменения внесли два человека одновременно и не сохранилось в результате ни одно из внесенных. Но самый главный недостаток: Плюс невозможно не только использовать умные таблицы, но и сделать книгу общей, если в ней есть хоть одна умная таблица. Если будет попытка сделать общий доступ к книге с умной таблицей Excel покажет предупреждение, что этого делать нельзя и проинструктирует как преобразовать такую таблицу в диапазон для возможности использовать общий доступ. Так же хочу отметить, что есть распространенное заблуждение о невозможности использования макросов в книгах с общим доступом. Это не так, коды Visual Basic for Applications разрешается применять и в большинстве случаев они будут работать корректно и как задумывались, если они только не пытаются произвести действия, перечисленные как запрещенные для книг с общим доступом. Плюс невозможно просматривать и изменять коды в книгах с общим доступом. Отслеживание изменений и ведение журнала при помощи кода Изменения можно отслеживать и при помощи кода. При этом такой метод дает не менее полное представление об изменениях в ячейках и при этом давать общий доступ книге нет необходимости, а следовательно и все ограничения, применимые для книг в общем доступе тоже остаются за бортом, что делает такой подход порой предпочтительнее. Единственное, при таком режиме файл нельзя будет редактировать одновременно нескольким пользователям. Но в большинстве случаев этого и не надо. Я могу предложить небольшой код, который будет отслеживать следующие параметры:. Итак, Вы решили реализовать данный процесс. Изначально необходимо разрешить макросы , без этого данный способ ведения журнала не сработает. Далее необходимо добавить в книгу новый лист с именем LOG и вставить приведенный код в модуль книги , изменения в которойнеобходимо отслеживать:. Что такое модуль книги и как туда вставить код подробно описано в этой статье. Лист " LOG " рекомендую сделать скрытым, иначе смысла в отслеживании действий мало, так как любой сможет перейти на этот лист и стереть историю своих изменений. Надежно скрыть лист поможет эта статья: Как сделать лист очень скрытым. Если хотите, чтобы файл с историей изменений хранился в папке, отличной от Мои документы , то необходимо Application. DefaultFilePath заменить на нужный путь, к примеру такой: При изменении данного параметра необходимо учитывать, что не у всех пользователей может быть доступ к конкретной папке. Выделение сделанных изменений Запись изменений на листе в примечания. Посоветуйте Ваш макрос отслеживает изменение всей книги сразу кроме отдельных листов указанных в коде или только на активном. У меня файл с относительно большим количеством листов более и при изменении значений в каждой ячейке экран заметно подрагивает ScreenUpdating и др. Поможет ли задание конкретных уменьшенных диапазонов для каждого, или всех сразу, листов, например на А1: Александр, ознакомьтесь с комментариями к статье. Если не изменяет память - отслеживание изменений в конкретном диапазоне было на первой странице максимум на второй. Для работы с объединенными ячейками необходимо изменять код и тестировать. Если хотите сами помучиться - попробуйте с использованием свойства MergeArea. Подскажите, ваш макрос отслеживает изменение всей книги сразу кроме отдельных листов указанных в коде или только на активном. Еще раз советую прочесть комментарии. Там есть и про листы, и про диапазоны. Насколько что будет быстрее я не могу сказать. У Вас есть пример с множеством листов - примените советы прочитав комментарии к статье и посмотрите - ускорится или нет. И не надо восклицательных знаков - я Вам ничем не обязан. Дмитрий, спасибо за ваши ответы. Комментарии читал несколько раз и до публикации моего вопроса применил написанное в нескольких вариантах. По поводу восклицательного знака прошу меня извинить если был неправильно понят. Ничего такого не имел ввиду. Совместным вопросом и восклицательным знаком я пытаюсь обозначить вопрос и наличие своего скромного мнения по поводу него. Еще раз благодарю за оперативность и внимание к сообщениям. С кодом почти разобрался. Спасибо Вам за множество полезного материала. Прошу подсказать решение или где почитать. Пытаюсь совместить вашу идею и материал Павлова Николая "Отслеживание входа пользователей в книгу Excel", но ничего не получается. Суть идеи вести реестр, журнал и показывать листы данных только при включении макросов. Дополнительно пытаюсь сохранить не только реестр изменений ячейки, а параллельно вести журнал в котором при выходе и сохранении будет записываться: Дмитрий, СПАСИБО за Вашу работу, очень помогаете. С макросами только начитаю разбираться, поэтому не всегда могу сообразить, как адаптировать Ваш шаблон под свою задачу. Алла, здесь есть нюанс: Может подойдет это решение: Запись изменений на листе в примечания. Дата, Было-стало, Кто внес изменения - я удалю, мне это не нужно, оставлю только инфо об изменяемой ячейке. Вы проводите тренинги только для уже сформированных групп? Строка, в которой произошли изменения: Обратиться к столбцу BH этой строки: Row Тренинги сейчас провожу исключительно корпоративные, отдельные группы не собираю. Дмитрий спасибо еще раз. Если написать строку Target. Address То все работает, за исключением того, что выводится адрес ячейки с последним изменением, а не адреса всех измененных ячеек в ряду. Я думаю, нужно написать что-то типа того, как в коде с Комментариями: Row If cCell Is Nothing Then Target. H11" Is Nothing Then Exit Sub Dim oComment As Comment On Error Resume Next If Target. Главная Мои программы Ошибка - "Component COMDLG Count Then Exit Sub Application. Public sValue As String. Dim sLastValue As String. Dim lLastRow As Long. Count Then Exit Sub. Address 0 , 0. Cells lLastRow , 5. Dim rCell As Range , rRng As Range. On Error Resume Next. On Error GoTo 0. If Not rRng Is Nothing Then. For Each rCell In rRng. Cells lLastRow , 6. If rRng Is Nothing Then Exit Sub. Dim lLastRow As Long , wbLOG As Workbook. Dim sPath as String. Поделитесь своим мнением Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум. Нажмите, чтобы отменить ответ. Так же с этой статьей читают:. Выделение сделанных изменений Как отследить событие например выделение ячеек в любой книге? Запись изменений на листе в примечания "Обратить выделение" - выделить все ячейки, кроме выделенных. Главная Хитрости Тренинги Азы Excel. Спасибо за сообщение Ваше сообщение было получено и отправлено администратору. Основные понятия 22 Сводные таблицы и анализ данных 7 Графики и диаграммы 5 Работа с VB проектом 11 Power BI и Power Query Условное форматирование 5 Списки и диапазоны 5 Макросы VBA процедуры 61 Разное


Делает минет многим
Гран при бразилии 2015 расписание
Бициллин для свиней инструкция
Журнал изменений в Ексель
Какого числа праздник семьи
Сочинение рассказ план
Как нарисовать линию в экселе в графике
Отслеживание исправлений в Excel
Сколько уровней иерархии имеет казначейская система рф
Романсы на стихи евтушенко
Отслеживание исправлений в Excel
Кредит история исправить
Тесто на кексы в формочках фото
Владимир сутеев рассказы
Журнал изменений в Ексель
Server 2008 виртуальные машины
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment