Как проверить с помощью цикла vba, при каждом вводе данных в активную ячейку, есть ли значение(любое) в предыдущих(влево от активной ячейки) 6 ячейках строки, если есть во всех 6 подряд то запретить ввод(или msg) а если нет то можно дальше вводить данные. Нужно чтобы при составления графика дежурства на дому вводить не больше 6 дней дежурств(одного работника), потом выходной и опять по новой. В графике реализована форма для заполнения. Хочу установить проверку, чтобы было заполнено не больше 6 ячеек дальше пустая ячейка и опять 6 дней дежурства. Вот код одной кнопки:
[vba]
Код
Private Sub CommandButton1_Click() If Not Intersect(ActiveCell, Range("B8:AF15")) Is Nothing Then If ActiveCell.Offset(, -1) = "/3" Then MsgBox ("ЗАБОРОНЕНО!!!"), vbCritical + vbDefau, "ПОМИЛКА" ActiveCell.Offset(, 0) = "" Exit Sub Else If ActiveCell.Offset(, -1) = 1.5 Then MsgBox ("ЗАБОРОНЕНО!!!"), vbCritical + vbDefau, "ПОМИЛКА" ActiveCell.Offset(, 0) = "" Exit Sub Else Selection = 1.75 ActiveCell.Offset(, 1).Select End If End If End If End Sub
[/vba] Заранее спасибо!
Как проверить с помощью цикла vba, при каждом вводе данных в активную ячейку, есть ли значение(любое) в предыдущих(влево от активной ячейки) 6 ячейках строки, если есть во всех 6 подряд то запретить ввод(или msg) а если нет то можно дальше вводить данные. Нужно чтобы при составления графика дежурства на дому вводить не больше 6 дней дежурств(одного работника), потом выходной и опять по новой. В графике реализована форма для заполнения. Хочу установить проверку, чтобы было заполнено не больше 6 ячеек дальше пустая ячейка и опять 6 дней дежурства. Вот код одной кнопки:
[vba]
Код
Private Sub CommandButton1_Click() If Not Intersect(ActiveCell, Range("B8:AF15")) Is Nothing Then If ActiveCell.Offset(, -1) = "/3" Then MsgBox ("ЗАБОРОНЕНО!!!"), vbCritical + vbDefau, "ПОМИЛКА" ActiveCell.Offset(, 0) = "" Exit Sub Else If ActiveCell.Offset(, -1) = 1.5 Then MsgBox ("ЗАБОРОНЕНО!!!"), vbCritical + vbDefau, "ПОМИЛКА" ActiveCell.Offset(, 0) = "" Exit Sub Else Selection = 1.75 ActiveCell.Offset(, 1).Select End If End If End If End Sub