Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$B$12" Then Exit Sub Cells((([F15] - 1) \ 3 + 1) * 2, 4 - (([F15] - 1) Mod 3)) = Target End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$B$12" Then Exit Sub Cells((([F15] - 1) \ 3 + 1) * 2, 4 - (([F15] - 1) Mod 3)) = Target End Sub
попробовал это применить к этой страницы но ничего не вышло. сделал другой набросок,разгадка где то рядом, но не пойму, как значение переслать в выбранную ячейку?, с предыдущей формулой не выходит,
попробовал это применить к этой страницы но ничего не вышло. сделал другой набросок,разгадка где то рядом, но не пойму, как значение переслать в выбранную ячейку?, с предыдущей формулой не выходит,vitek73
Допилил мысль, но есть небольшое неудобство, для записи данных использую макрос 1,для стирания макрос 2, но чтоб запустить тот или иной, пришлось нарисовать дополнительную кнопку и привязать к ней свой макрос, можно сделать чтоб при изменении только ячейки R28 запускался макрос, а при изменении только T28 ячейки макрос ?
Допилил мысль, но есть небольшое неудобство, для записи данных использую макрос 1,для стирания макрос 2, но чтоб запустить тот или иной, пришлось нарисовать дополнительную кнопку и привязать к ней свой макрос, можно сделать чтоб при изменении только ячейки R28 запускался макрос, а при изменении только T28 ячейки макрос ?vitek73
Private Sub Worksheet_Change(ByVal Target As Range) Dim k& If Target.Address = ("$R$28") Then Select Case Target.Value Case 101 To 118: k = 55 Case 201 To 216: k = 137 Case 301 To 318: k = 221 Case 401 To 418: k = 303 Case 501 To 518: k = 385 End Select If k Then Cells(Target.Value - k, 2) = Range("C36") Cells(Target.Value - k, 4) = Range("D39") Cells(Target.Value - k, 6) = Range("P38") End If ElseIf Target.Address = ("$T$28") Then Select Case Target.Value Case 101 To 118: k = 55 Case 201 To 216: k = 137 Case 301 To 318: k = 221 Case 401 To 418: k = 303 Case 501 To 518: k = 385 End Select If k Then Union(Cells(Target.Value - k, 2), Cells(Target.Value - k, 4), Cells(Target.Value - k, 6)) = Empty End If End If End Sub
[/vba]
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim k& If Target.Address = ("$R$28") Then Select Case Target.Value Case 101 To 118: k = 55 Case 201 To 216: k = 137 Case 301 To 318: k = 221 Case 401 To 418: k = 303 Case 501 To 518: k = 385 End Select If k Then Cells(Target.Value - k, 2) = Range("C36") Cells(Target.Value - k, 4) = Range("D39") Cells(Target.Value - k, 6) = Range("P38") End If ElseIf Target.Address = ("$T$28") Then Select Case Target.Value Case 101 To 118: k = 55 Case 201 To 216: k = 137 Case 301 To 318: k = 221 Case 401 To 418: k = 303 Case 501 To 518: k = 385 End Select If k Then Union(Cells(Target.Value - k, 2), Cells(Target.Value - k, 4), Cells(Target.Value - k, 6)) = Empty End If End If End Sub