Здравствуйте! Мне нужно при заполнении ячейки B3, в А3 автоматом появлялась сегодняшняя дата. Если В4 я заполнил 13го января, то в А4 появилось -"13.01.2017". Возможно ли это?
Здравствуйте! Мне нужно при заполнении ячейки B3, в А3 автоматом появлялась сегодняшняя дата. Если В4 я заполнил 13го января, то в А4 появилось -"13.01.2017". Возможно ли это?Evgenii72
Che79, что-то не срабатывает. В примере ничего не получилось. Попробую еще объяснить, если я буду сегодня заполнять ячейки В6 и С6, то в А6 должна появляться сегодняшняя дата
Che79, что-то не срабатывает. В примере ничего не получилось. Попробую еще объяснить, если я буду сегодня заполнять ячейки В6 и С6, то в А6 должна появляться сегодняшняя датаEvgenii72
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) Then _ Target.Offset(0, -1).Value = Date End Sub
[/vba]
И если от Wasilich Не срабатывает, то скорее всего отключена работа макросов.
Evgenii72,
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 And Target.Row > 1 And Not IsEmpty(Target.Value) Then _ Target.Offset(0, -1).Value = Date End Sub
[/vba]
И если от Wasilich Не срабатывает, то скорее всего отключена работа макросов.bmv98rus
По этой же теме есть вопрос. Решение bmv98rus хорошее Решение , но если есть необходимость за более ранние даты поменять стоимость. При изменении стоимости в 1й столбец встает текущая дата, а необходимо, чтобы дата не менялась, если уже была ранее установлена.
По этой же теме есть вопрос. Решение bmv98rus хорошее Решение , но если есть необходимость за более ранние даты поменять стоимость. При изменении стоимости в 1й столбец встает текущая дата, а необходимо, чтобы дата не менялась, если уже была ранее установлена.kadig1989
Сообщение отредактировал kadig1989 - Четверг, 14.10.2021, 00:36
Здравствуйте. Подскажите пожалуйста скрипт для заполнения даты в колонке А (без перезаписи даты при изменении), при внесении данных в любую ячейку строки. Пример внёс данные в ячейку B2,C2, D2 и.т.д., а в ячейку А2 подставляется текущая дата. Первая строчка это названия колонок, нужно чтобы скрипт работал начиная со строки 2
Здравствуйте. Подскажите пожалуйста скрипт для заполнения даты в колонке А (без перезаписи даты при изменении), при внесении данных в любую ячейку строки. Пример внёс данные в ячейку B2,C2, D2 и.т.д., а в ячейку А2 подставляется текущая дата. Первая строчка это названия колонок, нужно чтобы скрипт работал начиная со строки 2Ефгений
Сообщение отредактировал Ефгений - Воскресенье, 28.08.2022, 09:38
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Target.Offset(, -1) = Date End Sub
[/vba]
Использовал данный код из примера. Но он учитывает данные только внесённые пользователем. А вот, если в этой же колонке часть ячеек берет данные из других ячеек. Или же там вставлены связи на другую книгу. То изменения в другой книге, которые изменит данные в нашей книге, не вызовут фиксацию даты изменения. И подскажите как ограничить размеры колонки. Нужно что бы колонка даты и ячейки вносимых данных учитывалась только на 2-100 строках.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Target.Offset(, -1) = Date End Sub
[/vba]
Использовал данный код из примера. Но он учитывает данные только внесённые пользователем. А вот, если в этой же колонке часть ячеек берет данные из других ячеек. Или же там вставлены связи на другую книгу. То изменения в другой книге, которые изменит данные в нашей книге, не вызовут фиксацию даты изменения. И подскажите как ограничить размеры колонки. Нужно что бы колонка даты и ячейки вносимых данных учитывалась только на 2-100 строках.Александр7034
Сообщение отредактировал Serge_007 - Вторник, 14.02.2023, 16:02
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("T6:T106")) Is Nothing Then Target.Offset(, 2) = Date End Sub
[/vba]
Теперь код выглядит так. Изменения в колонке T6:T106 фиксируются текущей датой напротив в колонке V. Но остался вопрос как сделать, что бы зависимые ячейки из колонки T6:T106 которые меняют данные автоматически, тоже фиксировались датой изменения.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("T6:T106")) Is Nothing Then Target.Offset(, 2) = Date End Sub
[/vba]
Теперь код выглядит так. Изменения в колонке T6:T106 фиксируются текущей датой напротив в колонке V. Но остался вопрос как сделать, что бы зависимые ячейки из колонки T6:T106 которые меняют данные автоматически, тоже фиксировались датой изменения.Александр7034
Сообщение отредактировал Александр7034 - Среда, 15.02.2023, 09:50
Александр7034, Для кода макроса существует специальный тег. Это кнопка # (она рядом с той, которую Вы используете (fx)) Поправил Ваш пост, видите, как все красиво сразу стало? ))))
меняют данные автоматически, тоже фиксировались датой изменения.
А вот это уже сложнее и напрямую зависит от самого файла. Ну, как вариант для общего случая - на событие Worksheet_Calculate повесить фиксирование того, что сейчас в диапазоне (ar1), отмену операции (Undo), фиксирование того, что было (ar0), снова Undo - возврат отмены, сверку ar1 и ar0. Там, где разнятся - там и изменение. Но это не всегда прокатит и вообще не сильно хорошая это идея
Александр7034, Для кода макроса существует специальный тег. Это кнопка # (она рядом с той, которую Вы используете (fx)) Поправил Ваш пост, видите, как все красиво сразу стало? ))))
меняют данные автоматически, тоже фиксировались датой изменения.
А вот это уже сложнее и напрямую зависит от самого файла. Ну, как вариант для общего случая - на событие Worksheet_Calculate повесить фиксирование того, что сейчас в диапазоне (ar1), отмену операции (Undo), фиксирование того, что было (ar0), снова Undo - возврат отмены, сверку ar1 и ar0. Там, где разнятся - там и изменение. Но это не всегда прокатит и вообще не сильно хорошая это идея_Boroda_
А вот это уже сложнее и напрямую зависит от самого файла.
Изначально в ячейки колонки T6:T106 у меня прописана формула, которая использует связи на ячейки с другой книги. Связи обновляются не автоматически при открытии книги, а только после нажатия этой кнопки обновления связей. [vba]
Код
Private Sub CommandButton1_Click() ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources End Sub
[/vba] А часть данных вписывается вручную, формула в этих ячейках затирается и в будущем там только ручной ввод остается. Вот они нормально фиксируется. В моем случай можно как то приписать костыль? Достаточно на момент нажатия кнопки обновления связей, для ячеек где остались ссылки на другую книгу, просто поставить текущую дату?
А вот это уже сложнее и напрямую зависит от самого файла.
Изначально в ячейки колонки T6:T106 у меня прописана формула, которая использует связи на ячейки с другой книги. Связи обновляются не автоматически при открытии книги, а только после нажатия этой кнопки обновления связей. [vba]
Код
Private Sub CommandButton1_Click() ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources End Sub
[/vba] А часть данных вписывается вручную, формула в этих ячейках затирается и в будущем там только ручной ввод остается. Вот они нормально фиксируется. В моем случай можно как то приписать костыль? Достаточно на момент нажатия кнопки обновления связей, для ячеек где остались ссылки на другую книгу, просто поставить текущую дату?Александр7034
Сообщение отредактировал Александр7034 - Среда, 15.02.2023, 11:01
Private Sub CommandButton1_Click() ar0_ = Range("T6:T106").Value ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources ar1_ = Range("T6:T106").Value ar_ = Range("V6:V106").Value For i = 1 To UBound(ar0_) If ar1_(i, 1) <> ar0_(i, 1) Then ar_(i, 1) = Date End If Next i Range("V6:V106").Value = ar_ End Sub
[/vba]
Приблизительно так [vba]
Код
Private Sub CommandButton1_Click() ar0_ = Range("T6:T106").Value ActiveWorkbook.UpdateLink Name:=ActiveWorkbook.LinkSources ar1_ = Range("T6:T106").Value ar_ = Range("V6:V106").Value For i = 1 To UBound(ar0_) If ar1_(i, 1) <> ar0_(i, 1) Then ar_(i, 1) = Date End If Next i Range("V6:V106").Value = ar_ End Sub