Здравствуйте! пример вставки даты, который есть в "Приемах"(http://www.planetaexcel.ru/techniques/6/44/)) подходит. Когда сделать так, чтобы дата вставлялась в защищенную ячейку. или чтобы после вставки даты, ее нельзя было изменить. Спасибо.
PrivateSubWorksheet_Change(ByValTarget AsRange) ForEach cell In Target 'проходим по всем измененным ячейкам IfNot Intersect(cell, Range("A2:A100")) IsNothingThen'если изменененная ячейка попадает в диапазон A2:A100 With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату .Value = Now .EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке EndWith EndIf Next cell EndSub
PrivateSubWorksheet_Change(ByValTarget AsRange)
Sheets(2).Protect Password:="1111", UserInterfaceOnly:=True
Sheets("Лист1".Protect Password:="1111", UserInterfaceOnly:=True
For Each cell In Target 'проходим по всем измененным ячейкам
If Not Intersect(cell, Range("A2:A100")) Is Nothing Then 'если изменененная ячейка попадает в диапазон A2:A100
With cell.Offset(0, 1) 'вводим в соседнюю справа ячейку дату
.Value = Now
.EntireColumn.AutoFit 'выполняем автоподбор ширины для столбца B, чтобы дата умещалась в ячейке
End With
End If
Next cell
End Sub
Или можно так:
Код
'снимаем защиту с листа
Worksheets("Лист1".Unprotect
'если лист защищен с паролем 1234: Worksheets("Лист1".Unprotect "1234"
'Действия которые хотите произвести на листе, например,изменение значения ячейки А1
Cells("A1".Value = "проверка"
'устанавливаем защиту на лист
Worksheets("Лист1".Protect
'если лист был защищен с паролем 1234: Worksheets("Лист1".Protect "1234"
End Sub
Спасибо! Попробую. у меня не все ячейки защищены, только столбец где дата нужно защитить, тогда как сделать? наверно нужно будет указать столбец для защиты, как это сделать не подскажете? VBA не очень знаю.