Здравствуйте!Прошу помочь в следующей проблеме: можно ли и каким образом можно сделать прерывание последовательного ввода данных в информационные окна InputBox, т.е на данный момент при изменении одной ячейки появляется одно информационное окно InputBox, которое заполняем, затем нажав кнопку "Ок" появляется следующее информационное окно InputBox, но его мы, например, заполнять не хотим, и нажимая кнопку "Cancel" все равно происходит переход к следующему информационному окну InputBox. Можно ли сделать так, чтобы при нажатии кнопки "Cancel"на любом информационном окне, появлялось окно MsgBox со следующим вопросом "Закончить работу", если "Да", то не надо было заполнять все оставшиеся информационные окна, если "Нет", то работа по заполнению информационных окон продолжалась, начиная с того, где нажали "Cancel".
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim a, b If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("B2:B11")) Is Nothing Then If Target = "" Then: Range(Target(1, 0), Target(1, 10)).ClearContents: Exit Sub a = MsgBox("Этот товар со склада?", vbYesNo, "Информационное сообщение") If a = 6 Then: Target(1, 2).Value = "ДА" If a = 7 Then: Target(1, 2).Value = "НЕТ" b = MsgBox("Этот товар из магазина?", vbYesNo, "Информационное сообщение") If b = 6 Then: Target(1, 3).Value = "ДА" If b = 7 Then: Target(1, 3).Value = "НЕТ" If Target(1, 2) = "ДА" Then: Postavcik = InputBox("Введите имя Поставщика", "Обязательно для ввода") Target(1, 4).Value = Postavcik If Postavcik = "" Then Target(1, 4).Value = "Инкогнито"
If Target(1, 2) = "ДА" Then: Pokupatel = InputBox("Введите имя Покупателя", "Обязательно для ввода") Target(1, 5).Value = Pokupatel If Pokupatel = "" Then Target(1, 5).Value = "Инкогнито" ... Например, вот здесь хочется прервать ввод данных,но даже нажав кнопку "Cancel", все равно вводишь дальше
If Target(1, 2) = "ДА" Then: Data = InputBox("Введите Дату", "Обязательно для ввода") Target(1, 6).Value = Data If Data = "" Then Target(1, 6).Value = "Инкогнито"
End If End Sub
[/vba]
Здравствуйте!Прошу помочь в следующей проблеме: можно ли и каким образом можно сделать прерывание последовательного ввода данных в информационные окна InputBox, т.е на данный момент при изменении одной ячейки появляется одно информационное окно InputBox, которое заполняем, затем нажав кнопку "Ок" появляется следующее информационное окно InputBox, но его мы, например, заполнять не хотим, и нажимая кнопку "Cancel" все равно происходит переход к следующему информационному окну InputBox. Можно ли сделать так, чтобы при нажатии кнопки "Cancel"на любом информационном окне, появлялось окно MsgBox со следующим вопросом "Закончить работу", если "Да", то не надо было заполнять все оставшиеся информационные окна, если "Нет", то работа по заполнению информационных окон продолжалась, начиная с того, где нажали "Cancel".
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim a, b If Target.Cells.Count > 1 Then Exit Sub If Not Intersect(Target, Range("B2:B11")) Is Nothing Then If Target = "" Then: Range(Target(1, 0), Target(1, 10)).ClearContents: Exit Sub a = MsgBox("Этот товар со склада?", vbYesNo, "Информационное сообщение") If a = 6 Then: Target(1, 2).Value = "ДА" If a = 7 Then: Target(1, 2).Value = "НЕТ" b = MsgBox("Этот товар из магазина?", vbYesNo, "Информационное сообщение") If b = 6 Then: Target(1, 3).Value = "ДА" If b = 7 Then: Target(1, 3).Value = "НЕТ" If Target(1, 2) = "ДА" Then: Postavcik = InputBox("Введите имя Поставщика", "Обязательно для ввода") Target(1, 4).Value = Postavcik If Postavcik = "" Then Target(1, 4).Value = "Инкогнито"
If Target(1, 2) = "ДА" Then: Pokupatel = InputBox("Введите имя Покупателя", "Обязательно для ввода") Target(1, 5).Value = Pokupatel If Pokupatel = "" Then Target(1, 5).Value = "Инкогнито" ... Например, вот здесь хочется прервать ввод данных,но даже нажав кнопку "Cancel", все равно вводишь дальше
If Target(1, 2) = "ДА" Then: Data = InputBox("Введите Дату", "Обязательно для ввода") Target(1, 6).Value = Data If Data = "" Then Target(1, 6).Value = "Инкогнито"
If Target(1, 2) = "ДА" Then: Postavcik = InputBox("Введите имя Поставщика", "Обязательно для ввода") If Postavcik = "" Then If MsgBox("Закончить работу", vbYesNo, "Информационное сообщение") = vbYes Then Target(1, 4).Value = "Инкогнито" Exit Sub End If End If Target(1, 4).Value = Postavcik
[/vba]
[vba]
Код
If Target(1, 2) = "ДА" Then: Postavcik = InputBox("Введите имя Поставщика", "Обязательно для ввода") If Postavcik = "" Then If MsgBox("Закончить работу", vbYesNo, "Информационное сообщение") = vbYes Then Target(1, 4).Value = "Инкогнито" Exit Sub End If End If Target(1, 4).Value = Postavcik