Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Использование кнопки "Cancel" в окне InputBox - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Использование кнопки "Cancel" в окне InputBox
Inna_27@08 Дата: Четверг, 11.12.2014, 00:55 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 14
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Здравствуйте!Прошу помочь в следующей проблеме: можно ли и каким образом можно сделать прерывание последовательного ввода данных в информационные окна 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]
К сообщению приложен файл: ____.xls (40.0 Kb)


Inna
 
Ответить
СообщениеЗдравствуйте!Прошу помочь в следующей проблеме: можно ли и каким образом можно сделать прерывание последовательного ввода данных в информационные окна 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]

Автор - Inna_27@08
Дата добавления - 11.12.2014 в 00:55
RAN Дата: Четверг, 11.12.2014, 01:09 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
[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
[/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
[/vba]

Автор - RAN
Дата добавления - 11.12.2014 в 01:09
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!