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

Вход

Регистрация

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

 

= Мир MS Excel/Отображение даты и времени изменения ячейки - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отображение даты и времени изменения ячейки (Макросы/Sub)
Отображение даты и времени изменения ячейки
ArkaIIIa Дата: Пятница, 06.06.2014, 12:31 | Сообщение № 21
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
RAN
Рабочий файл - не "поломанный", но ошибка возникает точно такая же.
 
Ответить
СообщениеRAN
Рабочий файл - не "поломанный", но ошибка возникает точно такая же.

Автор - ArkaIIIa
Дата добавления - 06.06.2014 в 12:31
ArkaIIIa Дата: Пятница, 06.06.2014, 12:56 | Сообщение № 22
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Может попробовать зайти с другой стороны?
[vba]
Код
Dim r As Range
     Set r = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
     If Not r Is Nothing Then
         Sheets(7).[B3:B140].Copy
         r.Offset(1).PasteSpecial Paste:=xlPasteValues
     End If
End Sub
[/vba]
Как добавить в этот макрос, чтобы при вставке он ниже (в 141 строке) указывал время вставки?
 
Ответить
СообщениеМожет попробовать зайти с другой стороны?
[vba]
Код
Dim r As Range
     Set r = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
     If Not r Is Nothing Then
         Sheets(7).[B3:B140].Copy
         r.Offset(1).PasteSpecial Paste:=xlPasteValues
     End If
End Sub
[/vba]
Как добавить в этот макрос, чтобы при вставке он ниже (в 141 строке) указывал время вставки?

Автор - ArkaIIIa
Дата добавления - 06.06.2014 в 12:56
Rioran Дата: Пятница, 06.06.2014, 13:24 | Сообщение № 23
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
ArkaIIIa, как раз ходил обедать и понял, что надо делать также =) У форумчан и мысли сходятся. Щас подумаем.

*****

Переделал Ваш макрос, попробуйте с моим файлом - примером. Сработает даже если область вставки будет на несколько столбцов.

Довольно занятно получилось, что мы топтались вокруг да около, а дело решалось простым OFFSET =)

[vba]
Код
Sub Tester()

Dim R As Range
Dim rngX As Range
Dim X As Integer
      
Set R = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
Set rngX = Sheets(7).[B3:B140]
      
If Not R Is Nothing Then
     rngX.Copy
     R.Offset(1).PasteSpecial Paste:=xlPasteValues
     Set rngX = Selection
     For X = 1 To rngX.Columns.Count
         rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
     Next X
End If

End Sub
[/vba]
К сообщению приложен файл: Detection_4.xlsm (19.7 Kb)


Сообщение отредактировал Rioran - Пятница, 06.06.2014, 13:42
 
Ответить
СообщениеArkaIIIa, как раз ходил обедать и понял, что надо делать также =) У форумчан и мысли сходятся. Щас подумаем.

*****

Переделал Ваш макрос, попробуйте с моим файлом - примером. Сработает даже если область вставки будет на несколько столбцов.

Довольно занятно получилось, что мы топтались вокруг да около, а дело решалось простым OFFSET =)

[vba]
Код
Sub Tester()

Dim R As Range
Dim rngX As Range
Dim X As Integer
      
Set R = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
Set rngX = Sheets(7).[B3:B140]
      
If Not R Is Nothing Then
     rngX.Copy
     R.Offset(1).PasteSpecial Paste:=xlPasteValues
     Set rngX = Selection
     For X = 1 To rngX.Columns.Count
         rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
     Next X
End If

End Sub
[/vba]

Автор - Rioran
Дата добавления - 06.06.2014 в 13:24
RAN Дата: Пятница, 06.06.2014, 13:36 | Сообщение № 24
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Погорячился. :(


Сообщение отредактировал RAN - Пятница, 06.06.2014, 14:33
 
Ответить
СообщениеПогорячился. :(

Автор - RAN
Дата добавления - 06.06.2014 в 13:36
ArkaIIIa Дата: Пятница, 06.06.2014, 13:58 | Сообщение № 25
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Rioran
У Вас, в Вашем примере, время вставляется? У меня только копирует-вставляет значения, без указания времени в 141 строке.

RAN
Буду благодарен, если Вы вставите указанную строку в нужную часть вышеуказанного макроса. Увы, я совсем не владею VBA.
 
Ответить
СообщениеRioran
У Вас, в Вашем примере, время вставляется? У меня только копирует-вставляет значения, без указания времени в 141 строке.

RAN
Буду благодарен, если Вы вставите указанную строку в нужную часть вышеуказанного макроса. Увы, я совсем не владею VBA.

Автор - ArkaIIIa
Дата добавления - 06.06.2014 в 13:58
ArkaIIIa Дата: Пятница, 06.06.2014, 14:05 | Сообщение № 26
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Rioran
Так, в Ваш файл-пример засунул Вами указанный макрос - работает.
Попробовал совместить со своим - не показывает время.

[vba]
Код
Sub Update_()
      Path_1 = "F:\STALE_APP_REPORT.xls"
      iFileDateTime_1 = FileDateTime(Path_1)
      Cells(27, 11) = iFileDateTime_1
      ActiveWorkbook.UpdateLink Name:= _
          "F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
__________________
Добавил сюда
__________________
Dim R As Range
Dim rngX As Range
Dim X As Integer
        
Set R = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
Set rngX = Sheets(7).[B3:B140]
        
If Not R Is Nothing Then
      rngX.Copy
      R.Offset(1).PasteSpecial Paste:=xlPasteValues
      Set rngX = Selection
      For X = 1 To rngX.Columns.Count
          rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
      Next X
End If
End Sub
[/vba]

Как то не так совместил?


Сообщение отредактировал ArkaIIIa - Пятница, 06.06.2014, 14:06
 
Ответить
СообщениеRioran
Так, в Ваш файл-пример засунул Вами указанный макрос - работает.
Попробовал совместить со своим - не показывает время.

[vba]
Код
Sub Update_()
      Path_1 = "F:\STALE_APP_REPORT.xls"
      iFileDateTime_1 = FileDateTime(Path_1)
      Cells(27, 11) = iFileDateTime_1
      ActiveWorkbook.UpdateLink Name:= _
          "F:\STALE_APP_REPORT.xls", Type:=xlExcelLinks
__________________
Добавил сюда
__________________
Dim R As Range
Dim rngX As Range
Dim X As Integer
        
Set R = Sheets(7).Rows(2).Find(Sheets(7).[B1].Text, , xlValues, xlWhole)
Set rngX = Sheets(7).[B3:B140]
        
If Not R Is Nothing Then
      rngX.Copy
      R.Offset(1).PasteSpecial Paste:=xlPasteValues
      Set rngX = Selection
      For X = 1 To rngX.Columns.Count
          rngX.Cells(1, X).Offset(141 - rngX.Cells(1, X).Row).Value = Now
      Next X
End If
End Sub
[/vba]

Как то не так совместил?

Автор - ArkaIIIa
Дата добавления - 06.06.2014 в 14:05
ArkaIIIa Дата: Пятница, 06.06.2014, 14:13 | Сообщение № 27
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Ага, все, понял. Он вставляет время в 141 строку на листе1, вместо листа7. Странно... Вроде как отсылки на 7 лист стоят.


Сообщение отредактировал ArkaIIIa - Пятница, 06.06.2014, 14:14
 
Ответить
СообщениеАга, все, понял. Он вставляет время в 141 строку на листе1, вместо листа7. Странно... Вроде как отсылки на 7 лист стоят.

Автор - ArkaIIIa
Дата добавления - 06.06.2014 в 14:13
Rioran Дата: Пятница, 06.06.2014, 14:20 | Сообщение № 28
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
ArkaIIIa, попробуйте сразу после IF ... THEN на следующей строке выбрать корректный лист с помощью SELECT.
 
Ответить
СообщениеArkaIIIa, попробуйте сразу после IF ... THEN на следующей строке выбрать корректный лист с помощью SELECT.

Автор - Rioran
Дата добавления - 06.06.2014 в 14:20
ArkaIIIa Дата: Пятница, 06.06.2014, 14:27 | Сообщение № 29
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Rioran
Selection = Sheets(7) ?
Ошибку пишет, что-то не так делаю.
 
Ответить
СообщениеRioran
Selection = Sheets(7) ?
Ошибку пишет, что-то не так делаю.

Автор - ArkaIIIa
Дата добавления - 06.06.2014 в 14:27
RAN Дата: Пятница, 06.06.2014, 14:32 | Сообщение № 30
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Я погорячился, был не прав.

Что такое
[vba]
Код
Set rngX = Selection
[/vba]
 
Ответить
СообщениеЯ погорячился, был не прав.

Что такое
[vba]
Код
Set rngX = Selection
[/vba]

Автор - RAN
Дата добавления - 06.06.2014 в 14:32
Rioran Дата: Пятница, 06.06.2014, 14:36 | Сообщение № 31
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
ArkaIIIa, имел в виду:

[vba]
Код
Sheets(7).Select
[/vba]
RAN, сначала rngX используется для копирования изначального диапазона, а этой фразой я превращаю его (пытаюсь, во всяком случае ^^) в область вставки, закрепляя за новым листом, где он ранее был вставлен.
 
Ответить
СообщениеArkaIIIa, имел в виду:

[vba]
Код
Sheets(7).Select
[/vba]
RAN, сначала rngX используется для копирования изначального диапазона, а этой фразой я превращаю его (пытаюсь, во всяком случае ^^) в область вставки, закрепляя за новым листом, где он ранее был вставлен.

Автор - Rioran
Дата добавления - 06.06.2014 в 14:36
ArkaIIIa Дата: Пятница, 06.06.2014, 14:39 | Сообщение № 32
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Rioran
yahoo
Ура! Огромное спасибо!) Извините, что так долго Вас мучал)
 
Ответить
СообщениеRioran
yahoo
Ура! Огромное спасибо!) Извините, что так долго Вас мучал)

Автор - ArkaIIIa
Дата добавления - 06.06.2014 в 14:39
Rioran Дата: Пятница, 06.06.2014, 14:41 | Сообщение № 33
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
ArkaIIIa, искренне рад, что вопрос наконец решён =) К решению шли долго и плодотворно =)
 
Ответить
СообщениеArkaIIIa, искренне рад, что вопрос наконец решён =) К решению шли долго и плодотворно =)

Автор - Rioran
Дата добавления - 06.06.2014 в 14:41
Igrik555 Дата: Четверг, 12.06.2014, 21:05 | Сообщение № 34
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрый день! помогите, пожалуйста, использую для записи времени изменения ячейки данный код (ниже, давно где то нашел), но теперь структура файла поменялась, и та ячейка, данные в которую вносились вручную, стала меняться формулой и соответственно данный код уже не работает. Понимаю, что надо использовать Calculate, но ума не хватает чтобы новый код работал так же. Помогите пожалуйста написать код, пример в файле
т.е. в примере: при любом изменении в столбце L в конкретной ячейке - должно проставляться время в ячейке справа

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Cells.Count > 1 Then Exit Sub
           If Not Intersect(Target, Range("L2:L100")) Is Nothing Then
               With Target(1, 2)
                   .Value = Now
                   .EntireColumn.AutoFit
               End With
           End If
End Sub
[/vba]
К сообщению приложен файл: 4959508.xlsm (17.8 Kb)


Сообщение отредактировал Igrik555 - Четверг, 12.06.2014, 21:06
 
Ответить
СообщениеДобрый день! помогите, пожалуйста, использую для записи времени изменения ячейки данный код (ниже, давно где то нашел), но теперь структура файла поменялась, и та ячейка, данные в которую вносились вручную, стала меняться формулой и соответственно данный код уже не работает. Понимаю, что надо использовать Calculate, но ума не хватает чтобы новый код работал так же. Помогите пожалуйста написать код, пример в файле
т.е. в примере: при любом изменении в столбце L в конкретной ячейке - должно проставляться время в ячейке справа

[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Cells.Count > 1 Then Exit Sub
           If Not Intersect(Target, Range("L2:L100")) Is Nothing Then
               With Target(1, 2)
                   .Value = Now
                   .EntireColumn.AutoFit
               End With
           End If
End Sub
[/vba]

Автор - Igrik555
Дата добавления - 12.06.2014 в 21:05
Igrik555 Дата: Четверг, 12.06.2014, 21:07 | Сообщение № 35
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
че то код не смог вставить :D
 
Ответить
Сообщениече то код не смог вставить :D

Автор - Igrik555
Дата добавления - 12.06.2014 в 21:07
Igrik555 Дата: Пятница, 13.06.2014, 13:28 | Сообщение № 36
Группа: Пользователи
Ранг: Новичок
Сообщений: 11
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Добрые люди!помогите мне
[moder]Мы не добрые. Мы справедливые. За каким Вы в чужую тему залезли со своим вопросом? Читайте Правила форума.
Эта тема закрыта.
 
Ответить
СообщениеДобрые люди!помогите мне
[moder]Мы не добрые. Мы справедливые. За каким Вы в чужую тему залезли со своим вопросом? Читайте Правила форума.
Эта тема закрыта.

Автор - Igrik555
Дата добавления - 13.06.2014 в 13:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Отображение даты и времени изменения ячейки (Макросы/Sub)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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