Страницы: 1
RSS
Замена формул в ячейках на их значения при помощи макроса
 
кросс

Здравствуйте. Прошу помощи в написании макроса. На листе2 в ячейках E1 и F1 переменные. В ячейке С1 формула зависимости от переменных. На листе1, в диапазоне, выделенном желтым цветом, так же имеется формула. Нужно, что бы макрос на листе1 производил замену формул, на их значения, в зависимости от того, заполнены ли ячейки А1:А19 на листе2, то есть, нужно, что бы после заполнения ячейки А1 на листе2, формула в ячейке A1 на листе1 заменялась на значение в данный момент, после заполнения ячейки A2 на листе2, формула в ячейке А2 на листе1  заменялась на значение в последующий момент и т.д. Макрос должен работать на листе1 с установленной защитой (паролем).

 
В модуль листа 2 (правая клавиша мыши по ярлычку листа -> "Исходный текст"):
Код
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim lr As Long
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A1:A100000")) Is Nothing Then
   lr = Target.Row
   Worksheets("Лист1").Range("A" & lr).Value = Worksheets("Лист1").Range("A" & lr).Value
End If
End Sub
Насчет пароля лучше отдельную тему создать и в ней подробно объяснить при каких условиях должна ставиться и сниматься защита.
 
Спасибо Игорь!!!
Насчет защиты - допилил сам, поискав на сайтах.

Код
Private Sub Worksheet_Change(ByVal Target As Range)
   Dim lr As Long
If Target.Cells.Count > 1 Then Exit Sub
If Not Intersect(Target, Range("A1:A100000")) Is Nothing Then
    Worksheets("Лист1").Protect Password:="", UserInterfaceOnly:=True
   lr = Target.Row
   Worksheets("Лист1").Range("A" & lr).Value = Worksheets("Лист1").Range("A" & lr).Value
End If
End Sub

Может кому пригодится.
Изменено: AMI83 - 24.06.2019 23:04:46
 
AMI83, оформляйте код соответствующим тегом. Посмотрите, как это выглядит у _Igor_61.
 
Юрий М, не ругайтесь, я новичок)
Уже всё исправил.
 
Да я и не ругался )
Страницы: 1
Наверх