Доброго времени суток!
Помогите с решением следующей задачи:
В таблице есть несколько столбцов (около10), расположенных в разных местах таблицы (не по порядку) В них ежедневно собираются данные по выработке работников. Нужно фиксировать дату и время внесения данных в любую из ячеек этих столбцов.
Пример таблицы ( столбцы со значениями: В, D, F, H, J, L, N, P, R, T; Cтолбцы с датами :A, C, E, G, I, K, M, O, Q, S, U; Начиная с 4ой строки и вниз на 10 тыс строк)
Важно, чтобы при удалении значения из ячейке, соответствующая дата так же удалялась, а при изменении, обновлялась до актуального на данный момент значения. Это необходимо для того, чтобы в случае ошибки иметь возможность откорректировать значения. Возможно есть еще какое-то решение
Решения, которые расписаны в сети либо не работают либо не под мой случай. Про макросы только начал читать информацию, поэтому надеюсь на понятный ответ.
Заранее спасибо!
Автоматическая вставка текущей даты в ячейку при вводе данных
Предположим, у нас имеется таблица заказов, куда пользователь вводит номер заказа, имя клиента, сумму и т.д. Необходимо сделать так, чтобы при внесении номера заказа в столбец А — в столбце B напротив введенного заказа автоматически появлялись дата и время его занесения:
Чтобы реализовать такой ввод даты, нам потребуется простой макрос, который надо добавить в модуль рабочего листа. Для этого щелкните правой кнопкой мыши по ярлычку листа с таблицей и выберите в контекстном меню команду Исходный текст (View code).
В открывшееся окно редактора Visual Basic скопируйте этот текст этого макроса:
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target 'проходим по всем измененным ячейкам If Not Intersect(cell, Range("A2:A100")) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100 With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке End With End If Next cell End Sub
При необходимости измените «чувствительный» диапазон «А2:А100» на свой собственный. Если необходимо вставлять дату не в соседний столбец, а правее — подставьте в оператор Offset(0,1) вместо 1 число побольше.
Закройте редактор Visual Basic и попробуйте ввести что-нибудь в диапазон А2:А100. В соседней ячейке тут же появится текущая дата-время!
Ссылки по теме
- Как сделать выпадающий календарь для быстрого ввода любой даты мышью в любую ячейку.
- Как Excel работает с датами
- Что такое макрос, как он работает, куда копировать текст макроса, как запустить макрос?
Фиксация времени изменения в ячейке |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Здравствуйте!
Описание проблемы: каждый час с прибора снимаются показания и заносятся в таблицу excel.
Нужно проверить, что данные действительно были внесены в это время, а не заполнены в конце рабочего дня по памяти. Т.е. при изменении ячейки в соседней ячейке должны записываться текущая дата и время с помощью функции ТДАТА.
Во вложении: просто формат таблицы для ввода данных.
Заранее спасибо!
добавляет текущюю дату и время в ячейку столбца В при вводе информации в ячейку столбца А
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range(«A2:A1000»)) Is Nothing Then
With Target(1, 2)
.Value = Now
.EntireColumn.AutoFit
End With
End If
End Sub
sklu, спасибо большое, это то, что нужно.
Мож кому пригодится, я так сделал:
Private Sub Worksheet_Change(ByVal Target As Range)
ST = Target.Row ‘ № строки
KL = Target.Column ‘ № колонки
If KL = 1 And ST > 4 And ST < 26 Then
Cells(ST, 2) = Date + Time
End If
End Sub
(ограничено строками с 5 по 25)
Может и я на что сгожусь … Если сгодился, можете меня по+благодарить+.
Получить и вставить время создания и время последнего изменения в ячейки
В этой статье будут рассказываться о способах получения времени создания и времени последнего изменения текущей информации книги, а также вставки времени создания и времени последнего изменения текущей информации книги в ячейки Excel.
Получите время создания и время последнего изменения в Excel с помощью команды Info
Получите время создания и время последнего изменения в Excel с помощью функции дополнительных свойств
Вставьте созданное время и время последнего изменения в ячейки Excel с кодом VBA
Вставьте время создания и время последнего изменения в ячейки/верхний/нижний колонтитул с помощью Kutools for Excel
Получите время создания и время последнего изменения в Excel с помощью команды Info
Мы можем узнать точное время создания и время последнего изменения текущей книги в представлении за кулисами Microsoft Excel 2010/2013.
Нажмите Файл > Инфо, а в правой части представления за кулисами отображается Связанные даты Информация. Под Связанные даты title, в нем указано время последнего изменения, время создания и время последней печати. См. Следующий снимок экрана:
Примечание: Этот способ доступен только в Microsoft Excel 2010/2013. Это недопустимо в Excel 2007.
Получите время создания и время последнего изменения в Excel с помощью функции дополнительных свойств
Фактически, мы можем получить как время создания, так и время последнего изменения текущей книги в диалоговом окне «Свойства документа».
Шаг 1: Открой Дополнительные свойства диалоговое окно:
В Excel 2007 щелкните значок Офисы кнопка> Подготовить > ПредложенияИ Свойства документа панель будет отображаться под панелью инструментов, щелкните Свойства документа > Дополнительные свойства, смотрите скриншоты:
В Excel 2010/2013 щелкните значок Файл > Инфо > Предложения > Дополнительные свойства.
Шаг 2: В Дополнительные свойства В диалоговом окне вы увидите время создания и время последнего изменения на вкладке Статистика. См. Следующий снимок экрана:
Вставьте созданное время и время последнего изменения в ячейки Excel с кодом VBA
Следующие макросы VBA помогут вам напрямую вставить в ячейки время создания и время последнего изменения текущей информации книги.
Вставьте время создания и время последнего изменения в Excel
Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.
Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.
Код VBA: вставьте время создания и время последнего изменения в Excel
Sub Workbook_Open()
Range("A1").Value = Format(ThisWorkbook.BuiltinDocumentProperties("Creation Date"), "short date")
Range("A2").Value = Format(ThisWorkbook.BuiltinDocumentProperties("Last Save Time"), "short date")
End Sub
Шаг 3:Нажмите F5 ключ для запуска этого макроса. И тогда дата создания и дата последнего изменения будут вставлены в ячейку A1 и ячейку A2 отдельно.
Внимание: вы можете изменить ячейку назначения в VB в соответствии с вашими потребностями.
Вставить время последнего изменения книги в Excel
Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.
Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.
Public Function ModDate()
ModDate = Format(FileDateTime(ThisWorkbook.FullName), "m/d/yy h:n ampm")
End Function
Шаг 3: Затем сохраните и закройте этот код и вернитесь на рабочий лист, в пустой ячейке введите формулу = ModDate (), и нажмите Enter ключ. Затем он вставляет в ячейку время последнего изменения.
Вставить созданное время книги в Excel
Шаг 1: Удерживайте ALT + F11 ключи, и он открывает окно Microsoft Visual Basic для приложений.
Шаг 2: Нажмите Вставить >> Модулии вставьте следующий макрос в окно модуля.
Function CreateDate() As Date
CreateDate = ActiveWorkbook.BuiltinDocumentProperties("Creation Date")
End Function
Шаг 3: Сохраните и закройте этот код, вернитесь на лист, в пустой ячейке введите формулу = CreateDate (), и нажмите Enter key. и созданная дата будет вставлена в ячейку, как показано на следующих снимках экрана:
Примечание: Если ваша ячейка не является форматом даты, она может отображать странное число. Просто отформатируйте эту ячейку как Время формат, он будет отображаться как обычная дата.
Вставьте время создания и время последнего изменения в ячейки/верхний/нижний колонтитул с помощью Kutools for Excel
Могу я представить вам удобный инструмент —Kutools for Excel какие из более чем 300 полезных функций могут повысить эффективность вашей работы? С этими Вставить информацию о книге Вы можете быстро вставить путь к книге, имя книги / рабочего листа, имя пользователя или время создания и время последнего изменения в ячейки, верхний или нижний колонтитул.
После бесплатная установка Kutools for Excel, пожалуйста, сделайте следующее:
1. Нажмите Кутулс Плюс > Workbook > Вставить информацию о книге. Смотрите скриншот:
2. Затем в Вставить информацию о книге диалоговом окне, проверьте информацию, которую вы хотите вставить из раздела информации, затем перейдите, чтобы указать место, в которое вы хотите вставить, вы можете выбрать ячейки, нижний колонтитул (левый нижний колонтитул, центральный нижний колонтитул, правый нижний колонтитул) или заголовок (левый верхний колонтитул, центральный верхний колонтитул, правый заголовок). Смотрите скриншот:
3. Нажмите Ok, и проверяемая вами информация была вставлена в указанное вами место.
Наконечник. Если вы хотите получить бесплатную пробную версию функции «Вставить информацию о книге», пожалуйста, перейдите к бесплатной загрузке Kutools for Excel сначала, а затем перейдите к применению операции в соответствии с вышеуказанными шагами.
Вставить информацию о книге
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
О различных функциях и функциях уже упоминалось несколько раз. полезно из электронная таблица Microsoft Excel. Что можно найти даже в линия и даже при том, что вы один из миллионов пользователей во всем мире, которые его используют, вы не знали, что изменение ячейки может быть сохранено.
Именно по этой причине мы решили представить статью, которая объяснит шаг за шагом как сохранить дату и время изменения данных или записей ячеек в Excel.
Вы можете не знать, что базы данных Excel являются часто Мизес à Jour разными пользователями. По этой причине необходимо следить за различными модификациями или модификациями, внесенными в данные в ячейках Excel . Итак, мы можем узнать о последнем обновлении записи.
В следующем уроке мы объясним, как сохранить дату и время. изменение данных или записи ячеек в Excel. Очень просто, как мы делали в статье, в которой объяснялось, как создать индекс в Excel с помощью фигур. Поэтому мы просим вас не прекращать читать это интересное руководство, которое, как всегда, будет очень полезно.
Так что вы можете сохранять дату и время изменения данных или записей ячеек в Excel , мы будем использовать событие Worksheet_Change. С его помощью мы можем запускать код VBA в любое время, когда любая ячейка в нашем листе подвергается модификации. Таким образом, мы можем сохранить изменения, внесенные в нашу базу данных.
Предположим, у нас есть таблица, которая показывает четыре столбца, в которых у нас есть в столбце To name, в столбце B — фамилия, в столбце C — телефон. И у нас будет последнее обновление в столбце D с количеством ячеек X. В этом столбце D я хочу ввести запись измененной даты и времени в одну из ячеек.
Какой бы столбец вы ни изменили, в столбце D автоматически будут отображаться дата и время последнего сохраненного изменения. Чтобы выполнить операцию записи дата и время изменения данных или записей ячеек в Excel . Это нужно для перехода в редактор VBA, создания кода или создать макрос , для этого идем наверх и делаем клип на вкладке «Разработчик», затем в VBA.
Ввод кода VBA для сохранения даты и времени
Теперь с левой стороны мы собираемся позиционировать себя на листе, который содержит нашу таблицу, мы делаем правый клип, и в появившихся опциях мы должны выбрать или создать клип в представлении. код . Теперь с правой стороны нам нужно ввести следующий код:
Дополнительная таблица Private_Change (значение ByVal как диапазон)
It Target.Column <4 Тогда
Ячейки (Target. Row, 4). Значение = Сейчас
Конец да
End Sub
Когда это событие сработало, мы сравним ячейку измененного столбца, используя свойство Target. Столбец.
Если параметры в этом столбце меньше 4, текущее время и дата будут вставлены с помощью функции «Сейчас». Вы должны заметить, что время и дата вставлены в столбец 4 и в ячейку, которая была изменена, и это будет достигнуто с помощью свойства Target.Row.
Следующий шаг, который мы собираемся выполнить, — это проверить, работает ли этот код, для этого мы собираемся минимизировать это окно. Далее мы перейдем к листу, на котором расположена наша таблица, и внесем изменения в любую ячейку и столбец. Когда вы это сделаете, дата и время изменения должны появиться в столбце D и в той же строке, где возникло изменение.
Если, наоборот, вы вводите новое имя в поле, в столбце D той же строки будут отображаться время и дата, когда вы сделали запись. И таким простым способом, используя VBA, мы смогли изучить новую функцию Excel. Где ты можешь сохранить дату и время изменения данных или записей ячеек в Excel.
Хитрости »
1 Май 2011 53756 просмотров
Запись изменений на листе в примечания
Иногда необходимо вести лог изменений в ячейках. Просто чтобы видеть как изменялась информация в ячейке. Например, это может пригодиться при ведении истории заказа, когда статус заказа записывается в одной ячейке. Сначала «В обработке», далее «Вывоз со склада», потом «Доставка» и т.п.
Приведенный ниже код создает примечание в ячейке, если её значение было изменено. В примечание заноситься информация о том, что было занесено в ячейку и когда это было занесено(т.е. дата и время изменения). Если примечание в ячейке уже есть, то в имеющееся примечание допишется информация об изменениях.
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) 'отслеживаем изменения только в диапазоне "E14:E50" - т.е. только статус '(изменить адрес, если надо отслеживать другие ячейки) If Intersect(Target, Me.Range("E14:E50")) Is Nothing Then Exit Sub Dim oComment As Comment On Error Resume Next Set oComment = Target.Comment If oComment Is Nothing Then Target.AddComment Target.Text & " " & Format(Now, "dd.mm.yy HH:MM") Else oComment.Text oComment.Text & Chr(10) & Target.Text & " " & Format(Now, "dd.mm.yy HH:MM") End If End Sub
Код необходимо поместить в модуль листа(щелкнуть правой кнопкой мыши по ярлычку листа —Исходный текст), изменения на котором необходимо отследить. Подробнее о модулях.
Следует учитывать, что код сработает только если данные были изменены вручную и для одной ячейки, а не для нескольких. Если скопировать в вставить несколько ячеек, примечание будет создано только для одной, а текст примечания может отличаться от ожидаемого. Если изменения производятся посредством вычисления формул — код не сработает вообще.
Изменения отслеживаются исключительно для ячеек A17:I30. Чтобы изменить ячейки, в которых необходимо отслеживать изменения, необходимо в строке:
If Intersect(Target, Me.Range(«E14:E50»)) Is Nothing Then Exit Sub
заменить адрес «E14:E50» на адрес нужных ячеек.
Если необходимо, чтобы в примечание заносилось предыдущее значение ячейки и вдобавок необходимо ограничить диапазон отслеживания изменений конкретными ячейками, то можно применить следующий код:
Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) Dim v, vv, sf, sa As String 'отслеживаем изменения только в диапазоне "A17:I30"(изменить адрес, если надо отслеживать другие ячейки) If Intersect(Target, Me.Range("A17:I30")) Is Nothing Then Exit Sub 'если изменено более одной ячейки - завершаем выполнение во избежание ошибок If Target.Count > 1 Then Exit Sub 'получаем новое значение v = Target.Value sf = Target.Formula 'запоминаем адрес текущей выделенной ячейки 'т.к. после Undo она изменится и надо будет вернуть sa = Selection.Address 'получаем старое значение With Application .EnableEvents = 0 .Undo vv = Target.Value 'старое значение 'возвращаем последнее записанное значение Target.Formula = sf Me.Range(sa).Select .EnableEvents = 1 End With 'сравниваем новое значение с прежним If CStr(vv) <> CStr(v) Then 'если значения различаются - создаем или дописываем примечание On Error Resume Next Dim oComment As Comment Set oComment = Target.Comment If oComment Is Nothing Then 'примечания еще нет - создаем и записываем информацию об изменениях Set oComment = Target.AddComment(CreateObject("wscript.network").UserName & ":" & Chr(10) & "было: " & vv & "; стало: " & v & "; Дата: " & Format(Now, "dd.mm.yy HH:MM")) Else 'уже есть примечание - дописываем информацию об изменениях oComment.Text oComment.Text & Chr(10) & CreateObject("wscript.network").UserName & ":" & Chr(10) & "было: " & vv & "; стало: " & v & "; Дата: " & Format(Now, "dd.mm.yy HH:MM") End If oComment.Shape.TextFrame.AutoSize = True End If End Sub
Код так же как и предыдущий размещается в модуле листа(правая кнопка мыши по ярлычку листа —Исходный текст), изменения в котором необходимо отслеживать.
Так же в данном коде помимо старого значения в примечание так же записываемся имя пользователя, изменившего значение, новое значение, дата/время изменения. Изменения отслеживаются исключительно для ячеек A17:I30. Чтобы изменить ячейки, в которых необходимо отслеживать изменения, необходимо в строке:
If Intersect(Target, Me.Range(«A17:I30»)) Is Nothing Then Exit Sub
заменить адрес «A17:I30» на адрес нужных ячеек.
Хочу обратить внимание, что при изменении нескольких ячеек сразу код не будет выполняться, т.к. ячеек может быть много и их значения могут просто не уместиться в примечания. Если нужны отслеживания множества ячеек сразу, то имеет смысл ознакомиться со статьей: Ведение журнала сделанных в книге изменений
Скачать пример
История изменений ячеек в примечаниях (72,5 KiB, 3 734 скачиваний)
Так же см.:
Ведение журнала сделанных в книге изменений
Выделение сделанных изменений
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика