Не могу с Вами спорить, т.к. в силу своего незнания Прошу помощи... Попробовал объяснить на примерах на листе Excel приложенного файла Макрос из сообщения №4 берет данные из С4 и копирует в С2, а мне нужно, чтоб я внес данные в С4, а макрос при этом взял данные из С3 (рассчитанные по формуле) и скопировал в С2 (при этом в С2 не должно быть формулы типа С2=С3). Возможно будет проще и правильнее написать формулу из вспомогательной ячейки С3 сразу в процедуре VBA при расчете значения С2, тогда прошу помочь с этим. Хотя, если честно, уже принципиально хочется добить первую задачу до позитивного финиша ))
Не могу с Вами спорить, т.к. в силу своего незнания Прошу помощи... Попробовал объяснить на примерах на листе Excel приложенного файла Макрос из сообщения №4 берет данные из С4 и копирует в С2, а мне нужно, чтоб я внес данные в С4, а макрос при этом взял данные из С3 (рассчитанные по формуле) и скопировал в С2 (при этом в С2 не должно быть формулы типа С2=С3). Возможно будет проще и правильнее написать формулу из вспомогательной ячейки С3 сразу в процедуре VBA при расчете значения С2, тогда прошу помочь с этим. Хотя, если честно, уже принципиально хочется добить первую задачу до позитивного финиша ))
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Range("C4")) Is Nothing Then If WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) < 4 Then Range("C2") = 4 ElseIf WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) = 10 Then Range("C2") = 11 ElseIf WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) > 12 Then Range("C2") = 0 Else Range("C2") = WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) End If End If End Sub
[/vba]
Цитата
сразу в процедуре VBA при расчете значения С2
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Intersect(Target, Range("C4")) Is Nothing Then If WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) < 4 Then Range("C2") = 4 ElseIf WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) = 10 Then Range("C2") = 11 ElseIf WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) > 12 Then Range("C2") = 0 Else Range("C2") = WorksheetFunction.RoundUp(Range("C4") / 304.8, 0) End If End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address = "$C$4" Then Target.Offset(-2) = Target.Offset(-1) End If End Sub
[/vba]
Может так [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target.Address = "$C$4" Then Target.Offset(-2) = Target.Offset(-1) End If End Sub