В файле два листа. В листе "Ввод данных" все данные ввожу руками, в листе "Расчет данных" все считается формулами. Таблиц с формулами у меня уже 7 и будет еще несколько. Очень не удобно после каждого ввода данных протягивать формулы в остальных таблицах с формулами. Подскажите как сделать так, чтобы при вводе данных руками (в новых строках), остальные таблицы понимали, что им нужно протягивать формулы и считать добавленную информацию.
В файле два листа. В листе "Ввод данных" все данные ввожу руками, в листе "Расчет данных" все считается формулами. Таблиц с формулами у меня уже 7 и будет еще несколько. Очень не удобно после каждого ввода данных протягивать формулы в остальных таблицах с формулами. Подскажите как сделать так, чтобы при вводе данных руками (в новых строках), остальные таблицы понимали, что им нужно протягивать формулы и считать добавленную информацию.KiTrOd
Еще вариант. Макросом на событие листа. Формулы копируются при вводе новой даты. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A5:A1000")) Is Nothing Then a = Target.Row With Sheets("Расчет данных") If Target.Value <> "" Then .Range("A" & a - 1 & ":P" & a - 1).Copy .Range("A" & a) Else .Range("A" & a & ":P" & a).ClearContents End If End With End If End Sub
[/vba] upd: Чуть поменял, файл перевложил.
Еще вариант. Макросом на событие листа. Формулы копируются при вводе новой даты. [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A5:A1000")) Is Nothing Then a = Target.Row With Sheets("Расчет данных") If Target.Value <> "" Then .Range("A" & a - 1 & ":P" & a - 1).Copy .Range("A" & a) Else .Range("A" & a & ":P" & a).ClearContents End If End With End If End Sub
ShAM, супер, спасибо, именно так! Подскажите пожалуйста, мне этот код для каждой таблицы нужно будет повторить? я никогда макросом не пользовался.
ShAM, супер, спасибо, именно так! Подскажите пожалуйста, мне этот код для каждой таблицы нужно будет повторить? я никогда макросом не пользовался.KiTrOd
мне этот код для каждой таблицы нужно будет повторить?
Тогда еще раз upd (предполагается, что лист "Ввод данных" стоит первым): [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A5:A1000")) Is Nothing Then a = Target.Row For i = 2 To Worksheets.Count With Sheets(i) If Target.Value <> "" Then .Rows(a - 1 & ":" & a - 1).Copy .Range("A" & a) Else .Rows(a & ":" & a).ClearContents End If End With Next End If End Sub
мне этот код для каждой таблицы нужно будет повторить?
Тогда еще раз upd (предполагается, что лист "Ввод данных" стоит первым): [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A5:A1000")) Is Nothing Then a = Target.Row For i = 2 To Worksheets.Count With Sheets(i) If Target.Value <> "" Then .Rows(a - 1 & ":" & a - 1).Copy .Range("A" & a) Else .Rows(a & ":" & a).ClearContents End If End With Next End If End Sub