Excel отслеживание изменений в ячейках

На чтение 4 мин Просмотров 3.8к. Опубликовано 16.03.2022

Функция «Исправления» — одна из самых лучших функций в Excel. Она позволяет вам не запутаться при работе с большими объемами данных и файлами, которые редактируют сразу несколько человек.

С помощью этой функции, вы можете отдельно отслеживать каждое изменение или сразу все. В общем, настроек в ней много.

Итак, начнем!

Содержание

  1. Как начать следить за изменениями в Excel
  2. Как работает эта опция в Excel
  3. Как просмотреть все изменения списком
  4. Принимаем или отклоняем изменения
  5. Отключаем опцию
  6. Различия между комментариями и отслеживанием изменений

Как начать следить за изменениями в Excel

Изначально эта опция не активирована в Excel. Вы можете сделать это самостоятельно.

Пошаговая инструкция:

  • Щелкните на «Рецензирование»;

  • Щелкните на «Выделить изменения…» в функции «Исправления»;

  • В открывшемся окошке поставьте галочку на опции «Отслеживать исправления». Также вы можете задать дополнительные настройки (видно на картинке), но это уже по вашему усмотрению;

  • Подтвердите.

Итак, мы включили функцию.

Как работает эта опция в Excel

Итак, теперь при каждом изменении ячейки она будет выделена синей рамкой. Если вы нажмете на неё, вы увидите кто, когда и что конкретно изменил в ячейке. Это очень удобно когда файл редактируют несколько людей. Например, если вы нашли ошибку, то можете увидеть кто её допустил.

На картинке ниже, я поменял значение ячейки B1, она выделилась синим цветом и в ней появился синий треугольник (слева вверху).

Если мы поместим курсор мышки на ячейку, то увидим небольшое окошко с примечанием, в нем будет указана вся информация про изменение.

Важная информация: когда вы включаете эту функцию, ваш файл Excel становится «Общим». Вы не сможете использовать его защиту (с паролем, как мы рассматривали в статьях ранее) и так далее. Имейте это в виду.

Как просмотреть все изменения списком

Это может понадобиться, когда вы работаете с большими объемами данных. Вы можете просмотреть сразу все изменения, которые вносились в файл списком.

Пошаговая инструкция:

  • Щелкните на «Рецензирование»;
  • Щелкните на «Выделить изменения…» в функции «Исправления»;

  • В открывшемся окошке, кроме уже поставленной галочки на «Отслеживать исправления», поставьте галочку на опции «Вносить изменения на отдельный лист»;

  • Подтвердите.

В результате, Excel откроет новую страничку и поместит все изменения туда списком.

Принимаем или отклоняем изменения

В случае если у вас активирована наша функция, изменения, которые вносятся в ячейки не являются окончательными. Чтобы они стали окончательными, вы должны принять их в специальном разделе «Принять/отклонить исправления». Это относится и к изменениям, которые вносили другие люди в ваш файл, если такие, разумеется, есть.

Пошаговая инструкция:

  • Щелкните на «Принять/отклонить исправления» в функции «Исправления»;

  • В открывшемся окне «Просмотр исправлений» можно выбрать:
    • Когда были внесены изменения
    • Какой пользователь вносил изменения
    • И в каком диапазоне вносились изменения

  • Когда укажете нужные вам параметры, подтвердите;
  • В следующем окне Excel покажет вам все изменения, которые вносились в ячейках, которые удовлетворяют всем указанным параметрам в прошлом шаге.

Вот и все, в этом окошке вы выбираете, принять или отклонить изменения (например, если вы увидели ошибку, вы можете отклонить).

Отключаем опцию

Когда вы закончите работу над файлом, вы можете отключить эту опцию, чтобы она не мешала.

Пошаговая инструкция:

  • Щелкните на «Выделить исправления…» в функции «Исправления»;

  • И просто снимите галочку, которую мы поставили ранее («Отслеживать исправления»);

  • Подтвердите;
  • Откроется окошко, указанное на картинке ниже. Просто щелкните «Да».

Различия между комментариями и отслеживанием изменений

Некоторым нравится добавлять комментарии к ячейкам.

В чем разница между комментарием и отслеживанием изменения:

  • Функция «Отслеживание изменений» пишет примечание для каждой ячейки только тогда, когда она была изменена. В случае комментария, изменения необязательны. Комментарий можно оставить и без изменения ячейки.
  • Преимущество функции, рассмотренной в статье, заключается в том, что она автоматизирована. То есть она автоматически помечает все ячейки, где было изменение.
  • Также нельзя вывести все комментарии для файла, в отдельный лист и после, например, распечатать их.
  • Минус нашей функции в том, что, например, мы не можем защитить файл Excel, когда используем функцию. А если мы используем комментарии, то можем.

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Еще…Меньше

Функция «Показать изменения» в Excel позволяет точно узнать, какие изменения были внесены в книги, чтобы вы могли с уверенностью разрешить другим пользователям работать над вашей работой. Вы можете просмотреть сведения о том, кто что изменил, где и когда, а также предыдущее значение ячейки для быстрого изменения. Список изменений можно сузить, выбрав лист, диапазон или отдельную ячейку, чтобы просмотреть все внесенные изменения, включая массовые изменения. Последние изменения отображаются в течение 60 дней. Если у вас возникли проблемы, получите справку по от показанию изменений.

Просмотр изменений для всей книги   

  1. На вкладке «Рецензию» выберите «Показать изменения»

  2. Изменения отображаются на панели с последними изменениями сверху в порядке их внесения. 

  3. Вы можете увидеть, кто внося изменения, где именно в книге, когда и что они изменили.  

  4. Вы также можете просмотреть изменения, внесенные одновременно, щелкнув » Просмотреть изменения в массовой карточке».

Примечание: 
Отображение изменений отслеживает изменения, внесенные с windows Desktop, Excel на телефонах Mac, iPad, iOS и Android. Последние изменения отображаются в течение 60 дней. 

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

1. Выберите любой лист, диапазон или одну ячейку.

2. Щелкните правой кнопкой мыши, чтобы открыть контекстное меню и выбрать пункт «Показать изменения».  

Примечание: Если вы или другие пользователи редактируем книгу, пока открыта эта область, нажмите кнопку «Просмотреть новые изменения», чтобы обновить изменения. Это уведомление позволяет оставаться под управлением, если вы хотите обновить список и не отвлекаться при просмотре изменений. 

Фильтрация изменений на панели «Изменения» 

  1. В верхней части панели щелкните значок Значок фильтрафильтра.

  2. Выберите «Диапазон» или «Лист», чтобы отфильтровать отображаемые изменения, а затем выполните следующие действия.

    1. Чтобы отобразить изменения диапазона или ячейки, выберите «Диапазон» и введите диапазон или ячейку в текстовом поле.

    2. Щелкните значок стрелки рядом с текстовым полем для подтверждения.

Нужна дополнительная помощь?

История изменения ячейки в примечаниях

В некоторых случаях весьма полезным может быть сохранение всей истории изменения какой-либо ячейки в ее же примечании. Выглядеть это может примерно так:

logs-in-comment.png

Чтобы реализовать подобное, нам потребуется несложный макрос. Щелкните правой кнопкой мыши по ярлычку листа, где находятся отслеживаемые ячейки, и выберите команду Исходный текст (View Code). В открывшееся окно скопируйте и вставьте следующий код:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim NewCellValue$, OldComment$
Dim cell As Range
    
    'если ячейка не в отслеживаемом диапазоне, то выходим
    If Intersect(Target, Range("B3:B5")) Is Nothing Then Exit Sub
    
    'перебираем все ячейки в измененной области
    For Each cell In Intersect(Target, Range("B3:B5"))
        If IsEmpty(cell) Then
            NewCellValue = "Ячейка очищена" 'фиксируем очистку ячейки
        Else
            NewCellValue = cell.Formula     'или ее содержимое
        End If
        On Error Resume Next
        
        With cell
            OldComment = .Comment.Text & Chr(10)
            .Comment.Delete     'удаляем старое примечание (если было)
            .AddComment         'добавляем новое и вводим в него текст
            .Comment.Text Text:=OldComment & Application.UserName & " " & _
                            Format(Now, "MM.DD.YY h:MM:ss") & " : " & NewCellValue
            .Comment.Shape.TextFrame.AutoSize = True    'делаем автоподбор размера
            .Comment.Shape.TextFrame.Characters.Font.Size = 8
        End With
    Next cell
End Sub

Диапазон отслеживания B3:B5 замените на свой — и пользуйтесь на здоровье. 

Ссылки по теме

  • Как узнать кто из пользователей входил в вашу книгу Excel в последнее время
  • Основные способы установки защиты (ячеек, листов, книги) в Excel

Как вы могли отслеживать ячейки листа, если данные были изменены в Excel? Это может помочь вам как можно быстрее идентифицировать измененные ячейки. В этой статье я расскажу о некоторых интересных методах решения этой задачи в Excel.

Отслеживайте изменения ячеек в Excel с помощью функции отслеживания изменений

Отслеживайте изменения ячеек в Excel с помощью кода VBA


стрелка синий правый пузырь Отслеживайте изменения ячеек в Excel с помощью функции отслеживания изменений

В Excel есть полезный Отслеживать изменения функция, она может помочь вам отметить измененные ячейки, пожалуйста, сделайте следующее:

1. Нажмите Обзор > Отслеживать изменения > Выделить изменения, см. снимок экрана:

изменения в мониторе документов 1

2. В Выделить изменения диалоговом окне выполните следующие операции:

(1.) Проверить Отслеживайте изменения во время редактирования. Это также разделяет вашу книгу.

(2.) Под Выделите, какие изменения В разделе укажите нужные вам элементы Когда, Кто и Где.

(3.) Наконец, проверьте Выделите изменения на экране опцию.

изменения в мониторе документов 2

3. После завершения настройки нажмите OK кнопка, теперь, когда вы меняете любые значения ячеек в указанных ячейках, вокруг измененных ячеек появляется граница с треугольным значком, см. снимок экрана:

изменения в мониторе документов 3

Внимание: С помощью этого метода ваша книга станет общей.


стрелка синий правый пузырь Отслеживайте изменения ячеек в Excel с помощью кода VBA

Следующий код VBA также может помочь вам отслеживать значения ячеек при их изменении, пожалуйста, сделайте следующее:

1. Щелкните правой кнопкой мыши вкладку листа, на которой вы хотите отслеживать изменения ячеек, и выберите Просмотреть код из контекстного меню в открывшемся Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код VBA в модуль:

Код VBA: отслеживание изменений ячеек на листе Excel:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160728
    Dim xrng As Range
    Set xrng = Range("A1:E7")
    If Not Application.Intersect(xrng, Range(Target.Address)) _
           Is Nothing Then
        MsgBox "Cell " & Target.Address & " has changed.", vbInformation, "Kutools for Excel"
    End If
End Sub

изменения в мониторе документов 4

Примечание: В приведенном выше коде A1: E7 — это диапазон данных, который вы хотите отслеживать при изменении ячейки, вы можете изменить его по своему усмотрению.

2. Затем сохраните и закройте это окно кода, и теперь, когда вы измените значение ячейки в указанном диапазоне, появится окно сообщения, напоминающее вам, см. Снимок экрана:

изменения в мониторе документов 5


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (7)


Оценок пока нет. Оцените первым!

You can use Excel’s Track Changes option to keep track of changes to a worksheet that needs to be updated or reviewed by others. Here’s how!

Tracking Excel Changes

Tracking changes on your Excel spreadsheets makes it easier for other people to update or review your file. It also comes in handy when you want to keep track of all the changes made to it. The track changes command is easy to find in the Review tab of Microsoft Excel’s older versions. However, you and your team may find it difficult to set them up on newer versions.

So how do you make the track changes feature available on newer Microsoft Excel versions? Here’s a guide to help you out.

​Enabling the Track Changes Feature in Microsoft Excel

The track changes feature is disabled by default in Microsoft Excel. This means that the first step to tracking your changes will be to enable the feature. Here’s how you do it.

  1. Go to the Review tab > Track Changes > Highlight Changes > Track Changes While Editing.
    Select Track Changes on Microsoft Excel
  2. Under the Track Changes dropdown menu, select Highlight Changes.
    Select Highlight Changes on Microsoft Excel
  3. When the Highlight Changes dialogue box opens, select Track changes while editing.

Tracking changes while editing helps you to easily specify the situations under which your workbook can be shared. That is why you will see the “Who” and “When” options. For the sake of this guide, we will use the default settings, so:

  1. Select the When checkbox, set it to All, and then go to the Who checkbox and set it to Everyone.
  2. Afterward, select the Highlight changes on the Screen check box.
  3. Then finally click OK.

There you have it. Track Changes in Microsoft Excel is now enabled. This means any changes you make to your workbook will be highlighted. It is also good to note that you can only track changes on a saved file.

Making Track Changes in Microsoft Excel

Now that we have enabled tracking changes, you can begin making your changes on any Microsoft Excel cell or group of cells. For instance, in the mock project below, we have made changes in cell C4 from “Software Development” to “IT”.

So, when the cursor hovers over the changed cell, a message pops up. This message indicates what change was made, who made it, and when it was made.

Making Changes In Microsoft Excel

A track-enabled workbook will always show blue borders and a small blue triangle on the top left side of an edited cell. If you have multiple reviewers, Microsoft Excel assigns each one of them with a different tracking color.

This being the case, tracked workbooks cannot be protected because multiple people have been granted access. There are other options that you may not access once the Track Changes feature is on. Remember that you have to post the workbook in a shared location for you to get edits from others.

Getting a List of Tracked Changes on a Separate Worksheet

You can also view the Tracked Changes history on a separate worksheet. This list consists of all the changes made to your worksheet. This includes the previous cell content (an old value), the current cell content, and the new value.

Here’s how to get a list of your tracked changes.

  1. On the Review tab > Track Changes > Highlight Changes.
  2. This will open the Highlight Changes dialog box. Check the box next to labeled List changes on a new sheet, and click OK.
    List Changes On New Sheet dialogue box on Microsoft Excel

​View and Accept Changes

Enabling the tracking feature is one of the steps to tracking your file. Besides enabling this feature, you must also review the changes you have made. Reviewing changes makes it easier for you to sift through the ton of alterations made by others working on the same workbook.

The easier it is to determine the changes made, the more likely you will be to identify which of the changes are worth keeping and which ones you can do away with. To accept changes in Microsoft Excel, here’s what you have to do.

  1. Go to the Review Tab > Track Changes > Accept or Reject Changes.
  2. Click on Track Changes in the Changes group and select Accept/Reject Changes.
    Select Accept Changes option on Microsoft Excel

Once on the Select Changes to be Accepted or Rejected dialog box, you must specify the When, Who, and Where options. Here’s how to go about it:

  1. For the When option, you can choose all changes that have not been reviewed or specify a date.
  2. In the Who checkbox, you can select a specific individual and review the changes they have made.
    Select When Who and Where dialogue box Options on Microsoft Excel
  3. On the Where checkbox, you can accept or reject changes to the entire workbook. Alternatively, select the cells whose changes you would like to review and click OK.
    Accept Changes option in Microsoft Excel
  4. Clicking OK will open the Accept or Reject Changes dialog box.
  5. In the Accept or Reject Changes dialog box, you can click Accept changes one by one or Accept all to accept all changes at once.

If you reject a change, it will revert to the original value. It is also important to know that you cannot undo a change when you accept it.

Disabling Track Changes in Microsoft Excel

Once you finish your work, you can disable the Track Changes feature in Microsoft Excel. That will remove any existing blue box in the cells and will stop tracking any further changes.

Here are the steps to disable Track Changes in Microsoft Excel:

  1. Go to the Review Tab > Track Changes > Highlight Changes.
  2. In the Changes group option, click on Track Changes and select Highlight Changes.
  3. In the Highlight Changes dialog box, uncheck the option—Track Changes while Editing. This also shares your workbook.
  4. Click OK.
    Select Track Changes While Editing
  5. Once you click OK, you will see a prompt, as shown below. Click on Yes.
    Click Yes On Prompt

Can the Track Changes Feature Work on Microsoft Excel Sheets With Tables?

As it stands, you can’t use track changes on spreadsheets that contain tables. To track changes on such spreadsheets, you will have to convert them to ranges by selecting the table, clicking the Design Tab, and then clicking on Convert to Range.

For more complex projects, you can review these Microsoft Excel spreadsheet templates to ease your tracking process. If, after all this, you are still struggling to track changes, then maybe you are using Excel to run a project it isn’t well suited to. So here’s a list of some things you should avoid doing in Excel.

Why Do You Need to Enable Your Track Changes?

While you can comfortably work on your file without enabling this feature, it makes your work far more seamless, especially when working in a team.

Tracking changes enables you to insert a note whenever there are any changes in the cells. It automatically records all the changes taking place on your worksheet and stores them up for you to refer to later. That said, enjoy this hustle-free strategy for tracking changes on your Microsoft Excel sheets.

На чтение 3 мин Опубликовано 26.04.2020

Excel содержит очень полезный инструмент, который позволяет отслеживать исправления, вносимые в рабочую книгу. Например, Вы можете отдать свою работу другому пользователю на рецензирование, а затем забрав ее обратно, посмотреть какие изменения были внесены. В этом уроке мы научимся отслеживать исправления в рабочей книге Excel, а также создавать Журнал изменений.

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

Содержание

  1. Общие сведения об отслеживании исправлений в Excel
  2. Как включить режим отслеживания исправлений
  3. Вынесение всех исправлений на отдельный лист

Общие сведения об отслеживании исправлений в Excel

Когда режим отслеживания исправлений включен, каждая ячейка, в которой произошли изменения, будет выделена особыми границами и указателем. При наведении курсора на отмеченную ячейку Вы увидите детали исправления. Это позволяет Вам и другим рецензентам следить за тем, чтобы все было исправлено, прежде чем утверждать окончательную версию книги.

Отслеживание исправлений в Excel

Существует ряд исправлений, которые Excel не может отслеживать. Перед использованием данной опции советуем Вам ознакомиться на сайте компании Microsoft со списком изменений, которые не отслеживаются и не выделяются.

Вы не сможете использовать режим отслеживания исправлений, если рабочая книга включает в себя таблицы. Чтобы удалить таблицу: выделите её, перейдите на вкладку Конструктор, а затем выберите команду Преобразовать в диапазон.

Как включить режим отслеживания исправлений

  1. На вкладке Рецензирование нажмите команду Исправления, а затем в выпадающем меню выберите пункт Выделить исправления.Отслеживание исправлений в Excel
  2. В появившемся диалоговом окне Исправления установите флажок Отслеживать исправления. Убедитесь, что выбран пункт Выделять исправления на экране, а затем нажмите OK.Отслеживание исправлений в Excel
  3. Если появится запрос для подтверждения сохранения книги, нажмите ОК.Отслеживание исправлений в Excel
  4. Режим отслеживания исправлений будет включен. Теперь любая отредактированная ячейка будет помечаться цветной границей и треугольником в верхнем левом углу. Если рецензентов несколько, каждому из них будет присвоен свой цвет.
  5. Выберите любую отредактированную ячейку, чтобы увидеть перечень внесенных изменений. В следующем примере мы изменили содержимое ячейки E6 с «?» на «Андрей».Отслеживание исправлений в Excel

При включении режима отслеживания исправлений книга автоматически становится общей. Сутью общего доступа к рабочим книгам является возможность их хранения там, где сразу несколько пользователей смогут одновременно открывать и редактировать ее. Кроме этого, Вы можете отслеживать исправления как в локальной, так и в личной копии книги.

Вынесение всех исправлений на отдельный лист

В Excel есть возможность просматривать изменения на отдельном листе, который называется Журнал изменений. В данном журнале приводится список всех изменений в книге, включая Старое значение (прежнее содержимое ячейки) и Значение (текущее содержимое ячейки).

  1. Сохраните рабочую книгу.
  2. На вкладке Рецензирование выберите команду Исправления, а затем в выпадающем меню нажмите Выделять исправления.Отслеживание исправлений в Excel
  3. В появившемся диалоговом окне Исправления установите флажок Вносить изменения на отдельный лист, затем нажмите OK.Отслеживание исправлений в Excel
  4. Исправления будут приводиться на отдельном листе с названием Журнал.Отслеживание исправлений в Excel

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

Оцените качество статьи. Нам важно ваше мнение:

Отслеживание изменений в конкретных ячейках

alex2609

Дата: Пятница, 21.08.2015, 16:10 |
Сообщение № 1

Группа: Пользователи

Ранг: Участник

Сообщений: 61


Репутация:

6

±

Замечаний:
20% ±


Excel 2013

Необходимо отслеживать изменения в диапазоне ячеек, были/не были
Читал тут http://www.excelworld.ru/forum/2-8734-1 но применить к своему файлу не смог.
Подробное описание в файле.
Реальный файл очень большой и отслеживаемые ячейки находятся на разных листах.

К сообщению приложен файл:

222.xlsx
(11.6 Kb)

 

Ответить

Michael_S

Дата: Пятница, 21.08.2015, 17:49 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Конкретно для вашего примера, в модуль Лист1
[vba]

Код

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range(«A:A»)) Is Nothing Then Exit Sub
Worksheets(«Лист3»).Cells(Target.Row, 3) = Date ‘ или «изменено » & date
End Sub

[/vba]но мне почему-то кажется, что пример очень далек от реальности…

К сообщению приложен файл:

222-1-.xlsm
(17.9 Kb)

 

Ответить

alex2609

Дата: Воскресенье, 23.08.2015, 13:28 |
Сообщение № 3

Группа: Пользователи

Ранг: Участник

Сообщений: 61


Репутация:

6

±

Замечаний:
20% ±


Excel 2013

Да вы правы далек.

В реальном файле и примере Лист 1 отличается, вставка кода в модуль Листа 1 бессмысленна, т.к. там содержится лишь часть данных для расчета Листа 3 и изменения на Листе 1, не всегда приводят к изменениям на Листе 3.

При вставке кода в Лист 3, работает, но только при изменении ячеек вручную, а при изменении формулы на предыдущих листах нет.

Возможно ли адаптировать код, чтобы учитывать изменения конкретно на Листе 3, учитывая, что данные в нем не вводятся вручную, а рассчитываются по формуле по данным с нескольких других Листов или даже файлов?

 

Ответить

AndreTM

Дата: Воскресенье, 23.08.2015, 19:04 |
Сообщение № 4

Группа: Друзья

Ранг: Старожил

Сообщений: 1762


Репутация:

498

±

Замечаний:
0% ±


2003 & 2010

Может, применить несколько иной подход?
Не отслеживать каждое изменение, а просто сравнивать два состояния листа в конкретные моменты времени?
То есть, при необходимости, сначала делаем копию «наблюдаемого» листа (можно скрытую), а затем, когда нас интересует, насколько изменились данные — сравниваем текущее состояние с копией и как-то показываем расхождения.
Ну или вообще сравнивать состояния целых книг.


Skype: andre.tm.007
Donate: Qiwi: 9517375010

 

Ответить

alex2609

Дата: Понедельник, 24.08.2015, 13:54 |
Сообщение № 5

Группа: Пользователи

Ранг: Участник

Сообщений: 61


Репутация:

6

±

Замечаний:
20% ±


Excel 2013

Можно, в случае если Листов несколько, а если их 100, тогда смысл этих действий теряется, т.к. они направлены на максимальное упрощение и автоматизацию работы. В данном варианте придется следить за состоянием Листов копировать их и перекопировать.

 

Ответить

AndreTM

Дата: Понедельник, 24.08.2015, 15:30 |
Сообщение № 6

Группа: Друзья

Ранг: Старожил

Сообщений: 1762


Репутация:

498

±

Замечаний:
0% ±


2003 & 2010

alex2609, почему теряется смысл? Вам же не вручную что-то делать, вы вообще по идее ничего не должны замечать…
Ну 100 листов… Ну или 10 книг, по 10 листов… Ну завести книгу-накопитель для этих листов, правильно организовать соответствие связей… и копии будут сбрасываться туда, и сверяться потом… Не вами же сверяться, вы только результаты увидите. Это и есть автоматизация :)
Ну, если скажем, надо следить только за определенными ячейками или диапазонами, а не целыми листами — можно организовать список наблюдения, сверяться только по нему, но получится такой же накопитель, только для диапазонов…
Или вы всё же продолжаете умалчивать что-то? Например, вам нужно не просто видеть, что изменилось, а отслеживать историю изменений?
Хотя, если честно, я вообще не могу вникнуть в затею «отслеживать изменения». Вижу желание. Но не вижу смысла данного действа.


Skype: andre.tm.007
Donate: Qiwi: 9517375010

 

Ответить

alex2609

Дата: Понедельник, 24.08.2015, 21:22 |
Сообщение № 7

Группа: Пользователи

Ранг: Участник

Сообщений: 61


Репутация:

6

±

Замечаний:
20% ±


Excel 2013

По поводу копий до конца не понимаю как это работает. Есть функция автоматического копирования? Возможно вы правы, надо разбираться. Не хватает знаний.

Я ничего не умалчиваю, но если начну описывать файлы полностью, то это будет много букв…
Нужно просто отслеживать факт изменений без отслеживания истории изменений.
Кратко есть Таблица с несколькими параметрами Товар (строки -константа) и цена, наличие, скидка (столбцы — переменные)
Переменные не вводятся вручную на данном Листе, а рассчитываются на основании данных с других Листов этой же Книги.
Соответственно в Таблице не видно были изменения или нет.
Нужно понимать изменилась цена на товар или нет (насколько неважно)

Есть желание упростить работу и в этом я вижу смысл.
Возможно существует удивительно простой способ это сделать:)

Сообщение отредактировал alex2609Понедельник, 24.08.2015, 21:23

 

Ответить

Michael_S

Дата: Понедельник, 24.08.2015, 23:42 |
Сообщение № 8

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Можно, в случае если Листов несколько, а если их 100, тогда смысл этих действий теряется,

а зачем сто листов отслеживать? у вас вроде все на один лист собирается?

 

Ответить

alex2609

Дата: Среда, 26.08.2015, 16:48 |
Сообщение № 9

Группа: Пользователи

Ранг: Участник

Сообщений: 61


Репутация:

6

±

Замечаний:
20% ±


Excel 2013

Собирается на 1 лист в одной книге. Сейчас книг 25, будет больше

Код из сообщения 2 работает но только при вводе данных, а если вместо чисел формулы то нет

Другого варианта кроме копирования и сравнивания данных нет?

К сообщению приложен файл:

223.xlsm
(8.5 Kb)

Сообщение отредактировал alex2609Среда, 26.08.2015, 16:53

 

Ответить

Michael_S

Дата: Среда, 26.08.2015, 17:33 |
Сообщение № 10

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

можно так попробовать

К сообщению приложен файл:

223-1-.xlsm
(17.2 Kb)

 

Ответить

alex2609

Дата: Среда, 25.11.2015, 15:42 |
Сообщение № 11

Группа: Пользователи

Ранг: Участник

Сообщений: 61


Репутация:

6

±

Замечаний:
20% ±


Excel 2013

Файл 223-1-.xlsm работает так как нужно, но при любых изменениях (например увеличении количества строк) пишет ошибку «Run-time error (9): Subscript out of range
Не зная VBA сложно разобраться в коде.
В моем файле ячеек где надо отслеживать изменения больше и находятся они в других столбцах, и идут с пробелами (пустые строки)
Можно ли вписать свои области данных в код (куда?)

[vba]

Код

Option Explicit

Private Sub Worksheet_Calculate()
Dim Arr1(), cell As Range, i&
Set cell = UsedRange
Arr1 = Intersect(UsedRange, Range(«A:A»)).Value
For i = 1 To UBound(Arr1)
If Arr1(i, 1) <> Arr(i, 1) Then cell.Cells(i, 2) = «Изменено » & Now
Next
Arr = Intersect(UsedRange, Range(«A:A»))
End Sub

[/vba]

При изменении ссылок на Листе1 не на Лист2, а на нужный мне в принципе все работает, но мне нужно увеличить количество ячеек (строк), но получается ошибка
При протягивании или копировании А9 и В9 вниз на 6 строк вниз все работает, а на 7 строк — ошибка «Run-time error (9): Subscript out of range
[moder]Для оформления кода используйте кнопку #. Исправила за Вас[/moder]

Сообщение отредактировал alex2609Среда, 25.11.2015, 16:38

 

Ответить

118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

1

Есть ли событие, которое отслеживает, было ли в ячейке изменение данных

12.12.2012, 01:18. Показов 14203. Ответов 20


Студворк — интернет-сервис помощи студентам

Здравствуйте.

Будьте добры подскажите, есть ли событие, которое отслеживает, если в ячейке произошло изменение данных.



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

12.12.2012, 06:31

2

Change — срабатывает, когда пользователь вносит изменения на лист вручную и когда макрос вносит изменения на лист;
Calculate — срабатывает, когда в ячейке находится формула и формула изменяется.



1



118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

12.12.2012, 09:14

 [ТС]

3

пасибб, буду думать.



0



Staniiislav

30 / 30 / 0

Регистрация: 07.07.2010

Сообщений: 50

12.12.2012, 10:13

4

Visual Basic
1
2
3
4
5
6
7
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Range("B1:B200"), Target) Is Nothing Then ' проверяем изменения ячейки входит в диапазон B1:B200, если да то продолжаем
    If Target.Cells.Count > 1 Then Exit Sub ' проверяем, если изменяет НЕ больше одной ячейки, если да то продолжаем
    If IsEmpty(ActiveCell) Then Cells(Target.Row, Target.Column - 1).ClearContents ' ну и теперь само действие, в данном случаи условие, если изменяемая ячейка стала пустой, то удаляем значения со столбца А, тойже строки
End If
End Sub



1



118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

12.12.2012, 12:25

 [ТС]

5

это именно то, что я искал Станислав.

какая функция или процедура возвращает активную строку и столбец ? я ищу ищу никак не могу найти и понять…



0



Staniiislav

30 / 30 / 0

Регистрация: 07.07.2010

Сообщений: 50

12.12.2012, 13:14

6

Visual Basic
1
2
3
Target.Row ' строка изменения
Target.Column ' столбец изменения
Cells(Target.Row, Target.Column) ' ячейка изменения



1



Second

118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

12.12.2012, 17:05

 [ТС]

7

имею следующий код:

Visual Basic
1
2
3
Private Sub CommandButton1_Click()
   Worksheets("Лист1").Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 1)).Value = "test"
 End Sub

работает прекрасно, заполняя первое поле в записи значением после нажатия кнопки в текущей записи

почему тоже самое не работает в обработчике события:

Visual Basic
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
   Worksheets("Лист1").Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 1)).Value = "test"
End Sub



0



3827 / 2254 / 751

Регистрация: 02.11.2012

Сообщений: 5,928

12.12.2012, 17:38

8

почему не работает — работает. впишите в любую ячейку что нибудь и нажмите ввод.

Добавлено через 7 минут
может вам такой обработчик нужен
для книги Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)



0



118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

12.12.2012, 17:45

 [ТС]

9

Цитата
Сообщение от Vlad999
Посмотреть сообщение

почему не работает — работает. впишите в любую ячейку что нибудь и нажмите ввод.

блин, у меня не работает второй обработчик +_+
я сам же разработал сей код под свои нужны и тем более непонятно почему в обработчике события по изменению у окружающих работает, а у меня нет.

Цитата
Сообщение от Vlad999
Посмотреть сообщение

для книги Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)

я думаю это событие не изменения данных, а смены листа. Не знаю, как применить Ваш вариант =/



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

12.12.2012, 19:09

10

Second, процедуры событий нужно помещать в модули листов.

Примечание: есть ещё стандартный модуль, модуль класса, модуль формы, модуль книги.



0



118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

12.12.2012, 19:40

 [ТС]

11

Цитата
Сообщение от Скрипт
Посмотреть сообщение

Second, процедуры событий нужно помещать в модули листов.

Примечание: есть ещё стандартный модуль, модуль класса, модуль формы, модуль книги.

ясно, зафтра уже буду решать поблему )



0



30 / 30 / 0

Регистрация: 07.07.2010

Сообщений: 50

13.12.2012, 10:32

12

Цитата
Сообщение от Second
Посмотреть сообщение

ясно, зафтра уже буду решать поблему )

Вы бы выложили пример с тем что хотите отслеживать, изменять или еще чего-то, и Вам бы уже готовый пример помогли сделать!



0



118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

13.12.2012, 10:51

 [ТС]

13

ситуация фантастическая, на моем рабочем месте обработчик категорически не работает, проверял у коллег — все прекрасно… моветон однако =/

есть какие-либо идеи почему такое может происходить ?

Добавлено через 2 минуты

Цитата
Сообщение от Staniiislav
Посмотреть сообщение

Вы бы выложили пример с тем что хотите отслеживать, изменять или еще чего-то, и Вам бы уже готовый пример помогли сделать!

я хочу, чтобы в назначенном поле ( для пользователя RO) автоматом проставлялась дата последнего обращения к записи.



0



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

13.12.2012, 13:15

14

Second, такое событие у вас работает?

Visual Basic
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "Change Occur"
End Sub



0



118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

14.12.2012, 09:10

 [ТС]

15

обязательно опробую и дам ответ, завал пока )))

Добавлено через 14 часов 2 минуты
событие не работает, видимо какие-то трудности связаны с машиной на рабочем месте.
в любом случае мне все равно нужна помощь, так как надо доработать код и есть раб. машины, где он выполняется корректно.



0



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

14.12.2012, 09:30

16

Second, сделайте новую книгу, поместите туда вот этот код:

Visual Basic
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
    MsgBox "Change Occur"
End Sub

убедитесь, что у вас этот код не работает, и выложите книгу на форуме.

Ещё укажите, какая у вас версия Excel: 2003, 2007 или другая.



0



Second

118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

14.12.2012, 10:41

 [ТС]

17

так, большое спасибо макрос Ваш заработал на «проблемном» рабочем месте. Подозреваю где-то я в настройках мог накосячить.

Добавлено через 25 минут
итак, на текущий момент имеется код:

Visual Basic
1
2
3
Private Sub Worksheet_Change(ByVal Target As Range)
       Worksheets("Лист1").Range(Cells(ActiveCell.Row, 1), Cells(ActiveCell.Row, 1)).Value = "test"
End Sub

мне необходимо, чтобы в первое поле записи, в которой произошла редакция ячейки, вносилась текущая дата.
код работает только если после внесения изменения выйти Tab’ом, по Enter’у курсор скачет на след запись и вносит изменение в первом поле уже в след. записи, что крайне недопустимо.
Из моих скудных соображений подозреваю, что надо перехватить каким-нить событием чуть ранее, чем я делаю событием Change. Есть ли таковое ?



0



5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

14.12.2012, 10:44

18

Second, вместо ActiveCell и нужно использовать Target.
Target — это ячейка, где произошло изменение.



1



118 / 80 / 1

Регистрация: 10.08.2011

Сообщений: 664

14.12.2012, 11:01

 [ТС]

19

секунду опробую. Все корректно работает

Добавлено через 9 минут
осталось в ячейку внести текущую дату и желательно время,а еще бы идеально и пользователя +_+



0



Скрипт

5468 / 1148 / 50

Регистрация: 15.09.2012

Сообщений: 3,514

14.12.2012, 11:16

20

Second, дату и время автоматически можно вносить двумя способами:

  1. средствами самой программы Excel, используя функцию =ТДАТА(). Только дата и время в этом случае будут меняться, например, если внести какие-нибудь изменения на лист;
  2. с помощью средств программы VBA:
    Visual Basic
    1
    2
    3
    4
    5
    6
    7
    8
    
    Sub Procedure_1()
        
        'Чтобы увидеть результат работы кода: View - Immediate Window.
        Debug.Print Date
        Debug.Print Time
        Debug.Print Now
        
    End Sub

Пользователя можно так указать:

Visual Basic
1
2
3
4
5
Sub Procedure_2()
    
    Debug.Print Application.UserName
    
End Sub



1



Содержание

  • Включение функции отслеживания изменений в Excel
  • Как работает функция «Отслеживание изменений» в Excel?
  • Получение списка всех изменений
  • Принятие / отклонение изменений
  • Отключение отслеживания изменений в Excel
  • Разница между комментариями и отслеживанием изменений

Посмотреть видео — Как отслеживать изменения в Excel

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

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

В этом уроке я покажу вам, как отслеживать изменения в Excel.

По умолчанию эта функция отключена в Excel.

Вот шаги, чтобы включить отслеживание изменений в Excel:

Вышеупомянутые шаги позволят «отслеживать изменения» в Excel, и теперь он будет выделять любые изменения, внесенные в книгу.

Примечание. Чтобы эта опция работала, вам необходимо сохранить книгу в вашей системе или на сетевом диске. Если файл не был сохранен, он сначала попросит вас сохранить его перед включением опции «Отслеживать изменения». Если файл уже сохранен, он все равно сохранит его перед включением отслеживания.

Как работает функция «Отслеживание изменений» в Excel?

После того, как вы включили отслеживание, всякий раз, когда вы или любой, кто обращается к книге, вносите в нее какие-либо изменения, она будет выделена синей рамкой и получит маленький синий треугольник в верхнем левом углу ячейки. Это похоже на красный треугольник, который вы видите, когда вставляете комментарий в ячейку.

Например, ниже у меня есть фиктивный план проекта, и я внес изменения в столбец B (ячейки B4 и B6).

Когда вы наводите курсор на ячейку, в которой есть изменение, отображается сообщение, в котором указывается, что это за изменение, кто внес изменение и когда это было сделано.

Обратите внимание, что когда в Excel включен параметр «отслеживать изменения», книга является общедоступной, и некоторые функции автоматически отключаются. Например, вы не сможете защитить лист, когда включен параметр «отслеживать изменения». Вы заметите, что некоторые параметры на ленте неактивны.

Получение списка всех изменений

Если у вас есть книга, в которую внесено много изменений, вы можете получить список всех изменений отдельно в виде списка.

Вот шаги, чтобы получить список всех изменений на новом листе:

Это мгновенно создаст новый рабочий лист, в котором будут перечислены все внесенные вами изменения.

Принятие / отклонение изменений

После внесения изменений они не являются окончательными, пока вы не ознакомитесь с ними. Это может быть полезно, когда у вас есть проверенный файл от вашего коллеги / начальника / клиента, и вам нужно решить, какие изменения следует сохранить, а какие отклонить.

Вот шаги, чтобы принять / отклонить изменения в Excel:

Если вы отклоните изменение, оно вернется к исходному значению.

Обратите внимание: приняв изменение, вы не сможете его отменить.

Отключение отслеживания изменений в Excel

Как только ваша работа будет завершена, вы можете отключить функцию отслеживания изменений в Excel. Это приведет к удалению любого существующего синего поля в ячейках и остановит отслеживание любых дальнейших изменений.

Вот шаги, чтобы отключить функцию «отслеживать изменения» в Excel:

Разница между комментариями и отслеживанием изменений

Многие люди предпочитают добавлять комментарии при просмотре чужих работ в Excel.

Вот основные различия в функциях «комментариев» и «отслеживания изменений»:

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

Вам также могут понравиться следующие уроки:

  • Как использовать проверку орфографии в Excel.
  • Использование сообщения ввода в Excel для отображения сообщения при выборе ячейки.

Вы поможете развитию сайта, поделившись страницей с друзьями

Like this post? Please share to your friends:
  • Excel отследить изменения ячеек
  • Excel отсечь символы справа
  • Excel отсечь символы от строки
  • Excel отрицательные значения на диаграмме
  • Excel отрицательные до нуля