Прошу прощения, не тот файл прицепил...
Да, а про ячейку J2 я не подумал, там же у меня стоит цифра 0...
То есть нужно, чтоб проверка выполнялась на пустоту ячейки, а не на значение, наверно. 0 - это тоже цифра. Пользователь может и ее внести.
Так, и чтоб копировалась уже табличка, если вбито хотя бы одно значение, а не все. То есть не обязательно все значения вбивать надо будет. Пользователь может внести 2 или 3 значения, или только одно.
Ну, решил скопировать таблицу... по файлу The Prist...
Ввел в ячейку J2 - скопировалась, в ячейке N2 диапазон изменился на B8:J8. Начинаю вводить значения в B8 - и сразу же в ячейке N2 диапазон становится B14:J14, таблица не копируется.
Если ввожу все значения, кроме одного, и затем вручную меняю диапазон с B14:J14 обратно на B8:J8, и ввожу последнее значение - копируется табличка, но дальше снова после ввода первого значения диапазон меняется - и не копируется...
Вообще, я хочу понять сам - что всё это значит - весь код...
Или книжку по VBA маленькую, или конкретно про это объяснить, может быть?
Ссылку на книжку в эл.виде, может, посмотреть?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
' Dim lLastRow As Long
' lLastRow = Cells(Rows.Count, 1).End(xlUp).Row
' Application.EnableEvents = False
' [N2] = Range(Cells(lLastRow - 3, 2), Cells(lLastRow - 3, 10)).Address(0, 0)
If Intersect(Target, Range([N2])) Is Nothing Then Application.EnableEvents = True: Exit Sub
Dim rCell As Range, bCopy As Boolean
bCopy = True
Application.EnableEvents = False
For Each rCell In Range([N2])
If rCell = "" Then bCopy = False
Next rCell
If bCopy = True Then Range([N2]).Offset(-1, -1).Resize(6, 12).Copy Cells(Range([N2]).Row + 5, 1)
[N2] = Range([N2]).Offset(6).Address(0, 0)
Range([N2]).ClearContents
Application.EnableEvents = True
End Sub