Страницы: 1
RSS
Защита от копирования/вставки неверных данных в диапазон с проверкой данных
 
Всем привет!

В диапазон B2:B21 вставлена проверка данных на запрет ввода любой даты, кроме сегодняшней (=В2=СЕГОДНЯ()). Однако юзверь всё равно может туда скопировать из другой ячейки/листа/книги неверное значение и вставить туда. Можно ли это как-то предотвратить?

P.S. Прошу прощения, если тема уже мелькала здесь. Не нашёл.
 
макросом пойдет? в модуль листа:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 2 Then Exit Sub
Target.Value = Date
End Sub
 
Варианты: или программно запретить вставку или отслеживать по событию Worksheet_Change значение в ячейке.
 
yozhik, спасибо!

Однако появляется ряд сторонних проблем, например, если попытаться удалить данные из предыдущих ячеек (или даже просто нажать Del на пустой ячейке ниже), то она заполняется текущей датой. Это можно как-то пофиксить?

Юрий М, про программно. Это что типа этого этого?
 
Всё верно - похожая тема ) И ещё были похожие.
 
Попробуйте такой вариант:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("B2:B20")) Is Nothing Then
        Application.EnableEvents = False
        If Target <> Date Then Target = ""
    End If
    Application.EnableEvents = True
End Sub
 
Юрий, спасибо!
Страницы: 1
Наверх