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

Вход

Регистрация

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

 

= Мир MS Excel/фиксация времени изменения ячеек в диапазоне - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » фиксация времени изменения ячеек в диапазоне (Макросы/Sub)
фиксация времени изменения ячеек в диапазоне
Leprotto Дата: Пятница, 21.10.2016, 11:41 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Добрый форумчане!
Помогите, пожалуйста, с кодом, который будет фиксировать дату и время компьютера в каждой строке при изменении любой из ячеек в диапазоне строки.
Пример приложил.
К сообщению приложен файл: vremya_izm.xlsm (9.9 Kb)
 
Ответить
СообщениеДобрый форумчане!
Помогите, пожалуйста, с кодом, который будет фиксировать дату и время компьютера в каждой строке при изменении любой из ячеек в диапазоне строки.
Пример приложил.

Автор - Leprotto
Дата добавления - 21.10.2016 в 11:41
_Boroda_ Дата: Пятница, 21.10.2016, 11:58 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Если именно
в каждой строке при изменении любой из ячеек в диапазоне строки.
то
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Cells(Target.Row, 6) = Now
End Sub
[/vba]
К сообщению приложен файл: vremya_izm_1.xlsm (14.7 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеЕсли именно
в каждой строке при изменении любой из ячеек в диапазоне строки.
то
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Cells(Target.Row, 6) = Now
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 21.10.2016 в 11:58
Leprotto Дата: Пятница, 21.10.2016, 12:30 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, извиняюсь за неточность. Нужно при изменении только в столбцах А-Е Таблицы1.


Сообщение отредактировал Leprotto - Пятница, 21.10.2016, 12:49
 
Ответить
Сообщение_Boroda_, извиняюсь за неточность. Нужно при изменении только в столбцах А-Е Таблицы1.

Автор - Leprotto
Дата добавления - 21.10.2016 в 12:30
_Boroda_ Дата: Пятница, 21.10.2016, 13:08 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16666
Репутация: 6478 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Во! я правильно догадался. И еще у меня сомнение в том, что Вы будете менять по одной ячейке всегда. Поэтому заранее сделал обработку групповых изменений
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim int_ As Range, cc_ As Range
    Set int_ = Intersect(Target, [Таблица1])
    If Not int_ Is Nothing Then
    Application.ScreenUpdating = 0
    Application.EnableEvents = 0
        For Each cc_ In int_
            If cc_.Column <> 6 Then
                Cells(cc_.Row, 6) = Now
            End If
        Next cc_
        Application.EnableEvents = 1
        Application.ScreenUpdating = 1
    End If
End Sub
[/vba]
К сообщению приложен файл: vremya_izm_2.xlsm (16.2 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеВо! я правильно догадался. И еще у меня сомнение в том, что Вы будете менять по одной ячейке всегда. Поэтому заранее сделал обработку групповых изменений
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim int_ As Range, cc_ As Range
    Set int_ = Intersect(Target, [Таблица1])
    If Not int_ Is Nothing Then
    Application.ScreenUpdating = 0
    Application.EnableEvents = 0
        For Each cc_ In int_
            If cc_.Column <> 6 Then
                Cells(cc_.Row, 6) = Now
            End If
        Next cc_
        Application.EnableEvents = 1
        Application.ScreenUpdating = 1
    End If
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 21.10.2016 в 13:08
Leprotto Дата: Пятница, 21.10.2016, 13:12 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
_Boroda_, Отлично работает. В первом решении при удалении последней строки таблицы, сразу же добавлялась пустая с временем.
Во втором решении все шикарно. Спасибо огромное!!!
 
Ответить
Сообщение_Boroda_, Отлично работает. В первом решении при удалении последней строки таблицы, сразу же добавлялась пустая с временем.
Во втором решении все шикарно. Спасибо огромное!!!

Автор - Leprotto
Дата добавления - 21.10.2016 в 13:12
Leprotto Дата: Пятница, 21.10.2016, 13:48 | Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
_Boroda_,
Цитата
все шикарно

вот только теперь на листе не работаю формулы. На любое вычисление показывает "0" :'(
 
Ответить
Сообщение_Boroda_,
Цитата
все шикарно

вот только теперь на листе не работаю формулы. На любое вычисление показывает "0" :'(

Автор - Leprotto
Дата добавления - 21.10.2016 в 13:48
Leprotto Дата: Пятница, 21.10.2016, 14:07 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Цитата
вот только теперь на листе не работаю формулы

включил пересчет формул вручную, потом обратно на авто и вроде теперь все работает
 
Ответить
Сообщение
Цитата
вот только теперь на листе не работаю формулы

включил пересчет формул вручную, потом обратно на авто и вроде теперь все работает

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

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