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

Вход

Регистрация

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

 

= Мир MS Excel/Даты и время последнего редактирования листа в ячейку - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Даты и время последнего редактирования листа в ячейку (Макросы/Sub)
Даты и время последнего редактирования листа в ячейку
fijer Дата: Понедельник, 20.03.2017, 12:32 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 0% ±

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

Я уже нашел хороший код, проверил, всё работает:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False: Application.EnableEvents = False
NPAGE = ActiveSheet.Name
Sheets(NPAGE).Cells(1, 8) = Date
Sheets(NPAGE).Cells(1, 9) = Time
Sheets(NPAGE).Cells(1, 11) = Environ("UserName")
Application.ScreenUpdating = True: Application.EnableEvents = True
On Error GoTo 0
End Sub
[/vba]

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

Есть ли какие-либо варианты, чтобы избежать этой проблемы? Возможно, есть вариант запоминать измененные страницы и вносить значения последнего редактирования на этих страницах, скажем, при закрытии книги или её сохранении?
К сообщению приложен файл: 1DATATIME.xlsm (16.1 Kb)


Сообщение отредактировал fijer - Понедельник, 20.03.2017, 12:32
 
Ответить
СообщениеМне необходимо на каждом листе книги, вносить дату и время последнего изменения листа в отдельную ячейку.

Я уже нашел хороший код, проверил, всё работает:

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
Application.ScreenUpdating = False: Application.EnableEvents = False
NPAGE = ActiveSheet.Name
Sheets(NPAGE).Cells(1, 8) = Date
Sheets(NPAGE).Cells(1, 9) = Time
Sheets(NPAGE).Cells(1, 11) = Environ("UserName")
Application.ScreenUpdating = True: Application.EnableEvents = True
On Error GoTo 0
End Sub
[/vba]

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

Есть ли какие-либо варианты, чтобы избежать этой проблемы? Возможно, есть вариант запоминать измененные страницы и вносить значения последнего редактирования на этих страницах, скажем, при закрытии книги или её сохранении?

Автор - fijer
Дата добавления - 20.03.2017 в 12:32
Karataev Дата: Понедельник, 20.03.2017, 14:48 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1334
Репутация: 533 ±
Замечаний: 0% ±

Excel
Может быть нет необходимости писать именно в ячейку, а достаточно в комментарии?
При этом можно все записывать в один комментарий, а не в три.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Target.Parent.Cells(1, 8).Comment.Text CStr(Date)
    Target.Parent.Cells(1, 9).Comment.Text CStr(Time)
    Target.Parent.Cells(1, 11).Comment.Text Environ("UserName")
End Sub
[/vba]
К сообщению приложен файл: 0995900.xlsm (18.4 Kb)
 
Ответить
СообщениеМожет быть нет необходимости писать именно в ячейку, а достаточно в комментарии?
При этом можно все записывать в один комментарий, а не в три.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Target.Parent.Cells(1, 8).Comment.Text CStr(Date)
    Target.Parent.Cells(1, 9).Comment.Text CStr(Time)
    Target.Parent.Cells(1, 11).Comment.Text Environ("UserName")
End Sub
[/vba]

Автор - Karataev
Дата добавления - 20.03.2017 в 14:48
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Даты и время последнего редактирования листа в ячейку (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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