Макрос для MS Excel

программирование windows 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

Этот макрос добавляет текущюю дату и время в ячейку столбца В при изменении данных в ячейке столбца А.

Мне нужен макрос, который фиксирует каждое изменение ячейки А1, записывая его в ячейку В1:В1000, и проставляющий дату и время изменения рядом в ячейку С1:С1000. ВАЖНО: Ячейки В и С находятся на другом листе, который называется "Лист 5".

Пример:
В ячейку А1 (Лист 1), введено значение (число) "5" - на листе "Лист 5" в ячейке В1 появилось значение (число) "5", в ячейке С1 появилась дата и время изменения ячейки А1 (например 01.01.2014 00:00).
Через 5 минут, в ячейке А1 значение (число "5") изменяется ВРУЧНУЮ на число "10" - на листе "Лист 5" в ячейке В2 появляется значение (число) "10", в ячейке С2 появляется дата и время изменения ячейки А1 (01.01.2014 00:05).

Все изменения в ячейку А1 будут вноситься в ручную!

Если все это можно провернуть с помощью формулы, то будет даже лучше. Но формулы должны прописываться в ячейки В и С на листе "Лист 5".

Также прошу отвечать подробно, что откуда скопировать и куда вставить :)

Заранее Спасибо за ответ!
Ответы:
Можно так.
Код в модуле листа
Private Sub Worksheet_Change(ByVal Target As Range)
With Sheets("Лист2")
   If Target.Cells.Count > 1 Or IsEmpty(Target) Then Exit Sub
   If Target.Address(0, 0) = "A1" Then
       iRow = IIf(.Range("B1"), .Range("B" & Rows.Count).End(xlUp).Row + 1, 1)
       .Range("B" & iRow) = Target.Value
       .Range("C" & iRow) = Now
   End If
End With
End Sub


10 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.