Добрый день! Подскажите, пожалуйста, как автоматически заполнять ячейку сегодняшней датой, пробелом, настоящим временем при заполнении другой ячейки? Дата и время в таком формате (пример): 15.02.2024 15:26. Знаю такую формулу: =ЕСЛИ(H12<>"";СЕГОДНЯ();"") — но здесь время всегда выставляется 0:00
Добрый день! Подскажите, пожалуйста, как автоматически заполнять ячейку сегодняшней датой, пробелом, настоящим временем при заполнении другой ячейки? Дата и время в таком формате (пример): 15.02.2024 15:26. Знаю такую формулу: =ЕСЛИ(H12<>"";СЕГОДНЯ();"") — но здесь время всегда выставляется 0:00franky2118
В макросах ничего не понимаю. Подсмотрел в интернете. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If Not Intersect(cell, Range("H1:A20")) Is Nothing Then With Range("I" & cell.Row) .Value = Now .EntireColumn.AutoFit End With End If Next cell End Sub
[/vba] Вводите в диапазон H1:H20 любое изменение ячейки и рядом дата.
В макросах ничего не понимаю. Подсмотрел в интернете. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) For Each cell In Target If Not Intersect(cell, Range("H1:A20")) Is Nothing Then With Range("I" & cell.Row) .Value = Now .EntireColumn.AutoFit End With End If Next cell End Sub
[/vba] Вводите в диапазон H1:H20 любое изменение ячейки и рядом дата.DrMini
Только AutoFit для столбца I (если он вообще нужен, не проще ли заранее или потом ручками выставить нужную ширину столбца) лучше вынести на после цикла For Each. Чтобы он один раз делался. Иначе, при большом количестве изменяемых ячеек, может подвиснуть
Только AutoFit для столбца I (если он вообще нужен, не проще ли заранее или потом ручками выставить нужную ширину столбца) лучше вынести на после цикла For Each. Чтобы он один раз делался. Иначе, при большом количестве изменяемых ячеек, может подвиснуть_Boroda_
исходя из этого, т.е. данные вносятся в столбец H, вариант: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("h:h")) Is Nothing Then On Error Resume Next For Each u In Columns("h").SpecialCells(xlCellTypeConstants, 23) If u.Offset(, 1).Value = "" Then u.Offset(, 1).Value = Now Next End If End Sub
[/vba] апдэйт или наоборот [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("h:h")) Is Nothing Then a = Cells(Rows.Count, "h").End(xlUp).Row For Each u In Range("i1:i" & a + 1).SpecialCells(xlCellTypeBlanks) If u.Offset(, -1).Value <> "" Then u.Value = Now Next End If End Sub
исходя из этого, т.е. данные вносятся в столбец H, вариант: [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("h:h")) Is Nothing Then On Error Resume Next For Each u In Columns("h").SpecialCells(xlCellTypeConstants, 23) If u.Offset(, 1).Value = "" Then u.Offset(, 1).Value = Now Next End If End Sub
[/vba] апдэйт или наоборот [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("h:h")) Is Nothing Then a = Cells(Rows.Count, "h").End(xlUp).Row For Each u In Range("i1:i" & a + 1).SpecialCells(xlCellTypeBlanks) If u.Offset(, -1).Value <> "" Then u.Value = Now Next End If End Sub