Подскажите пожалуйста как в VBA сделать копирование определённых значений в строчке и значения в подшапке при условии что значение в данной строчке в колонке ПОСЛ.ЗАМЕНА изменится. Копироваться должно на другой лист в определённом порядке в пустую ниже строчку. Такой ЛОГ лист своего рода.
Табличку прилагаю.
листинг
модуля листа "обслуживание"
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
'Worksheet_Change - событие листа которое происходит после изменения в ячейке
If Target.Count > 1 Then Exit Sub 'если изменения произошли более чем в 1 ячейке, то выходим
Dim iRow&: iRow = Target.Row
Dim iCol&: iCol = Target.Column
If iCol = 1 Or iCol = 5 Then 'выберите сами какие колонки мониторятся
With ThisWorkbook.Sheets("история замен")
'в Юнионе перечислите ячейки которые должны быть скопированы
Application.Union(Cells(iRow, 12), Cells(iRow, 4)).Copy .Range("A" & .Range("A1").End(xlDown).Row + 1)
End With
End If
End Sub
Спасибо за помощь, но вот в чём проблемка?
(https://s2.wampi.ru/2018/03/10/NABROSOK.png)
https://wampi.ru/image/dqwqXf
Здравствуйте,
подправил в своем сообщении.
Извините, не проверил, когда выкладывал
что же может быть, доверие в безопасности макроса выставлено.
(https://image.ibb.co/fcx7QH/1.png)
Даже не знаю что у вас за баг :-\
попробуйте прописать все объекты явно
Option Explicit
' листинг [abbr=правой кнопкой мыши по ярлычку листа -> Исходный текст]модуля листа[/abbr] "обслуживание"
Private Sub Worksheet_Change(ByVal Target As Range)
'Worksheet_Change - событие листа которое происходит после изменения в ячейке
If Target.Count > 1 Then Exit Sub 'если изменения произошли более чем в 1 ячейке
Dim iRow&: iRow = Target.Row
Dim iCol&: iCol = Target.Column
If iCol = 1 Or iCol = 5 Then 'выберите сами какие колонки мониторятся
With ThisWorkbook.Sheets("история замен")
'в Юнионе перечислите ячейки которые должны быть скопированы
Excel.Application.Union(Me.Cells(iRow, 12), Me.Cells(iRow, 4)).Copy .Cells(.Columns(1).End(xlDown).Row + 1, 1)
End With
End If
End Sub
Кстати, какая у вас версия Excel?
Прикладываю ваш файл с рабочим кодом.