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

Вход

Регистрация

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

 

= Мир MS Excel/Запрос в VBA "Да", "Нет" - Мир MS Excel

Старая форма входа
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Модератор форума: китин, _Boroda_  
Запрос в VBA "Да", "Нет"
light26 Дата: Воскресенье, 02.09.2012, 10:46 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Как в VBA задать такой алгоритм, чтобы выводился запрос на продолжение выполнения команды, и, в случае согласия пользователя, команда выполнялась дальше, в случае отказа - работа макроса завершалась, либо продолжала выполнять другие функции
Ну, например, тут
[vba]
Code
Sub Макрос1()
        Range("A1:C5").Select
        MsgBox "Вы уверены, что хотите продолжить?"
      ' На выбор 2 варианта ответа: Да и Нет
      ' Если Нет, то goto Range("D1").Select (или сразу goto end sub)
      ' Если Да, то   
        Selection.ClearContents
        Range("D1").Select
End Sub
[/vba]


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Воскресенье, 02.09.2012, 11:18
 
Ответить
СообщениеКак в VBA задать такой алгоритм, чтобы выводился запрос на продолжение выполнения команды, и, в случае согласия пользователя, команда выполнялась дальше, в случае отказа - работа макроса завершалась, либо продолжала выполнять другие функции
Ну, например, тут
[vba]
Code
Sub Макрос1()
        Range("A1:C5").Select
        MsgBox "Вы уверены, что хотите продолжить?"
      ' На выбор 2 варианта ответа: Да и Нет
      ' Если Нет, то goto Range("D1").Select (или сразу goto end sub)
      ' Если Да, то   
        Selection.ClearContents
        Range("D1").Select
End Sub
[/vba]

Автор - light26
Дата добавления - 02.09.2012 в 10:46
KuklP Дата: Воскресенье, 02.09.2012, 11:11 | Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Вадим, все это есть в справке. Там же и пример того, что надо.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеВадим, все это есть в справке. Там же и пример того, что надо.

Автор - KuklP
Дата добавления - 02.09.2012 в 11:11
light26 Дата: Воскресенье, 02.09.2012, 11:17 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (KuklP)
Вадим, все это есть в справке.

Так я же написал в прошлом посте, что справка английская.
а я не знаю даже как задать условия поиска.
русские справки не открываются


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (KuklP)
Вадим, все это есть в справке.

Так я же написал в прошлом посте, что справка английская.
а я не знаю даже как задать условия поиска.
русские справки не открываются

Автор - light26
Дата добавления - 02.09.2012 в 11:17
ABC Дата: Воскресенье, 02.09.2012, 11:21 | Сообщение № 4
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
[vba]
Code
Sub Макрос1()
Dim xx
     Range("A1:C5").Select
     xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26")
     If xx = 6 Then: Selection.ClearContents: Range("D1").Select
     If xx = 7 Then: Exit Sub
End Sub
[/vba]

vbYes=6
vbNo=7


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
Сообщение[vba]
Code
Sub Макрос1()
Dim xx
     Range("A1:C5").Select
     xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26")
     If xx = 6 Then: Selection.ClearContents: Range("D1").Select
     If xx = 7 Then: Exit Sub
End Sub
[/vba]

vbYes=6
vbNo=7

Автор - ABC
Дата добавления - 02.09.2012 в 11:21
light26 Дата: Воскресенье, 02.09.2012, 11:33 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
ABC, для особо одаренных, пожалуйста:
[vba]
Code
Sub Макрос1()
Dim xx
      Range("A1:C5").Select
      xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") ' что такое vb?
      If xx = 6 Then: Selection.ClearContents: Range("D1").Select ' я правильно понимаю, что через двоеточие можно указать макросу выполнить несколько действий?
      If xx = 7 Then: Exit Sub
End Sub
[/vba]
Почему для vbYes используется именно 6, а для vbNo - 7? И что они значат?


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Воскресенье, 02.09.2012, 11:36
 
Ответить
СообщениеABC, для особо одаренных, пожалуйста:
[vba]
Code
Sub Макрос1()
Dim xx
      Range("A1:C5").Select
      xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") ' что такое vb?
      If xx = 6 Then: Selection.ClearContents: Range("D1").Select ' я правильно понимаю, что через двоеточие можно указать макросу выполнить несколько действий?
      If xx = 7 Then: Exit Sub
End Sub
[/vba]
Почему для vbYes используется именно 6, а для vbNo - 7? И что они значат?

Автор - light26
Дата добавления - 02.09.2012 в 11:33
ABC Дата: Воскресенье, 02.09.2012, 11:39 | Сообщение № 6
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
light26, в справочнике (MsgBox), для определения что Вы нажали (ДА|НЕТ)
[vba]
Code
Constant Value Description  
vbOK 1 OK  
vbCancel 2 Cancel  
vbAbort 3 Abort  
vbRetry 4 Retry  
vbIgnore 5 Ignore  
vbYes 6 Yes  
vbNo 7 No  
[/vba]


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
Сообщениеlight26, в справочнике (MsgBox), для определения что Вы нажали (ДА|НЕТ)
[vba]
Code
Constant Value Description  
vbOK 1 OK  
vbCancel 2 Cancel  
vbAbort 3 Abort  
vbRetry 4 Retry  
vbIgnore 5 Ignore  
vbYes 6 Yes  
vbNo 7 No  
[/vba]

Автор - ABC
Дата добавления - 02.09.2012 в 11:39
ABC Дата: Воскресенье, 02.09.2012, 11:42 | Сообщение № 7
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
еще так можно:
[vba]
Code
Sub Макрос1()
      Range("A1:C5").Select
      If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbNo Then Exit Sub 'или =7
      Selection.ClearContents
      Range("D1").Select
End Sub
[/vba]


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет


Сообщение отредактировал ABC - Воскресенье, 02.09.2012, 11:44
 
Ответить
Сообщениееще так можно:
[vba]
Code
Sub Макрос1()
      Range("A1:C5").Select
      If MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26") = vbNo Then Exit Sub 'или =7
      Selection.ClearContents
      Range("D1").Select
End Sub
[/vba]

Автор - ABC
Дата добавления - 02.09.2012 в 11:42
light26 Дата: Воскресенье, 02.09.2012, 11:44 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
ABC, то-есть в строке
[vba]
Code
xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26")
[/vba]
я могу указать vbYesNoCancel и msgbox отобразит 3 кнопки?


Я не волшебник. Я только учусь
 
Ответить
СообщениеABC, то-есть в строке
[vba]
Code
xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNo, "Light26")
[/vba]
я могу указать vbYesNoCancel и msgbox отобразит 3 кнопки?

Автор - light26
Дата добавления - 02.09.2012 в 11:44
ABC Дата: Воскресенье, 02.09.2012, 11:48 | Сообщение № 9
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
да, можно, только в чем разница между No и Cancel, все равно Вы дадите же Exit sub обоим, не так ли?


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
Сообщениеда, можно, только в чем разница между No и Cancel, все равно Вы дадите же Exit sub обоим, не так ли?

Автор - ABC
Дата добавления - 02.09.2012 в 11:48
light26 Дата: Воскресенье, 02.09.2012, 11:56 | Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (ABC)
в чем разница между No и Cancel,

Я просто уточнил возможность указания иных кнопок.
Quote (ABC)
все равно Вы дадите же Exit sub обоим, не так ли?

Для конкретно этого примера - да. А вообще можно для каждой кнопки дать свое значение.


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (ABC)
в чем разница между No и Cancel,

Я просто уточнил возможность указания иных кнопок.
Quote (ABC)
все равно Вы дадите же Exit sub обоим, не так ли?

Для конкретно этого примера - да. А вообще можно для каждой кнопки дать свое значение.

Автор - light26
Дата добавления - 02.09.2012 в 11:56
ABC Дата: Воскресенье, 02.09.2012, 11:59 | Сообщение № 11
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
вариант кнопки
[vba]
Code
Sub Макрос1()
Dim xx
      xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNoCancel, "Light26")
      If xx = 2 Then: MsgBox "Отмена", , "Вы нажали на кнопку"
      If xx = 6 Then: MsgBox "Да", , "Вы нажали на кнопку"
      If xx = 7 Then: MsgBox "Нет", , "Вы нажали на кнопку"
End Sub
[/vba]


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет


Сообщение отредактировал ABC - Воскресенье, 02.09.2012, 12:01
 
Ответить
Сообщениевариант кнопки
[vba]
Code
Sub Макрос1()
Dim xx
      xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNoCancel, "Light26")
      If xx = 2 Then: MsgBox "Отмена", , "Вы нажали на кнопку"
      If xx = 6 Then: MsgBox "Да", , "Вы нажали на кнопку"
      If xx = 7 Then: MsgBox "Нет", , "Вы нажали на кнопку"
End Sub
[/vba]

Автор - ABC
Дата добавления - 02.09.2012 в 11:59
KuklP Дата: Воскресенье, 02.09.2012, 12:04 | Сообщение № 12
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Quote
Так я же написал в прошлом посте, что справка английская.
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
Сообщение
Quote
Так я же написал в прошлом посте, что справка английская.
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.

Автор - KuklP
Дата добавления - 02.09.2012 в 12:04
light26 Дата: Воскресенье, 02.09.2012, 12:07 | Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
ABC, но ведь можно и так
[vba]
Code
Sub Макрос1()
Dim xx
     xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNoCancel, "Light26")
     If xx = 2 Then: MsgBox "Отмена", , "Вы отменили выполнение процедуры"  'например, отказ от выполнения ряда команд и возврат к исходному значению
     If xx = 6 Then: MsgBox "Да", , "Вы продолжаете"
     If xx = 7 Then: MsgBox "Нет", , "Вы отказываетесь от продолжения"  'например, отказ от выполнения только следующей процедуры
End Sub
[/vba]


Я не волшебник. Я только учусь
 
Ответить
СообщениеABC, но ведь можно и так
[vba]
Code
Sub Макрос1()
Dim xx
     xx = MsgBox("Вы уверены, что хотите продолжить?", vbYesNoCancel, "Light26")
     If xx = 2 Then: MsgBox "Отмена", , "Вы отменили выполнение процедуры"  'например, отказ от выполнения ряда команд и возврат к исходному значению
     If xx = 6 Then: MsgBox "Да", , "Вы продолжаете"
     If xx = 7 Then: MsgBox "Нет", , "Вы отказываетесь от продолжения"  'например, отказ от выполнения только следующей процедуры
End Sub
[/vba]

Автор - light26
Дата добавления - 02.09.2012 в 12:07
light26 Дата: Воскресенье, 02.09.2012, 12:10 | Сообщение № 14
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Сергей, да я и не отмазываюсь.
Сама процедура поиска решения становиться крайне трудоемкой задачей, потому как просто не знаю какой поисковой запрос сделать в справке


Я не волшебник. Я только учусь

Сообщение отредактировал light26 - Воскресенье, 02.09.2012, 12:11
 
Ответить
СообщениеСергей, да я и не отмазываюсь.
Сама процедура поиска решения становиться крайне трудоемкой задачей, потому как просто не знаю какой поисковой запрос сделать в справке

Автор - light26
Дата добавления - 02.09.2012 в 12:10
ABC Дата: Воскресенье, 02.09.2012, 12:11 | Сообщение № 15
Группа: Друзья
Ранг: Обитатель
Сообщений: 397
Репутация: 112 ±
Замечаний: 0% ±

Excel 2007
тоже вариант


MS Excel 2007 and 2010...
-------------------------------
С Уважением, Даулет
 
Ответить
Сообщениетоже вариант

Автор - ABC
Дата добавления - 02.09.2012 в 12:11
light26 Дата: Воскресенье, 02.09.2012, 12:12 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1351
Репутация: 91 ±
Замечаний: 0% ±

2007, 2010, 2013
Quote (ABC)
тоже вариант

вот и я о том же smile
Ладно, спасибо. разобрался, вроде


Я не волшебник. Я только учусь
 
Ответить
Сообщение
Quote (ABC)
тоже вариант

вот и я о том же smile
Ладно, спасибо. разобрался, вроде

Автор - light26
Дата добавления - 02.09.2012 в 12:12
Gustav Дата: Воскресенье, 02.09.2012, 13:08 | Сообщение № 17
Группа: Админы
Ранг: Участник клуба
Сообщений: 2792
Репутация: 1155 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Quote (light26)
справка английская

В Библиотеке форума есть вполне пристойная книга П. Эйткена "Интенсивный курс программирования в Excel за выходные": http://www.excelworld.ru/index/vba/0-12 . Про MsgBox там на страницах 123-125 весьма подробно излагается. На русском smile .

В Книгах Google тоже есть Эйткен. Вот ссылка сразу на стр. 123: http://books.google.ru/books?id=VgX0SQzeyH4C&lpg=PA1&hl=ru&pg=PA123

P.S. Еще в Библиотеке есть книга С. Роман "Использование макросов в Excel" - тоже полезная. Ответственно заявляю, как многолетний счастливый обладатель бумажной версии. Про MsgBox - на 90-92 стр.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Воскресенье, 02.09.2012, 18:30
 
Ответить
Сообщение
Quote (light26)
справка английская

В Библиотеке форума есть вполне пристойная книга П. Эйткена "Интенсивный курс программирования в Excel за выходные": http://www.excelworld.ru/index/vba/0-12 . Про MsgBox там на страницах 123-125 весьма подробно излагается. На русском smile .

В Книгах Google тоже есть Эйткен. Вот ссылка сразу на стр. 123: http://books.google.ru/books?id=VgX0SQzeyH4C&lpg=PA1&hl=ru&pg=PA123

P.S. Еще в Библиотеке есть книга С. Роман "Использование макросов в Excel" - тоже полезная. Ответственно заявляю, как многолетний счастливый обладатель бумажной версии. Про MsgBox - на 90-92 стр.

Автор - Gustav
Дата добавления - 02.09.2012 в 13:08
_Boroda_ Дата: Понедельник, 03.09.2012, 18:17 | Сообщение № 18
Группа: Админы
Ранг: Местный житель
Сообщений: 16702
Репутация: 6499 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Quote (KuklP)
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.

Сергей, при всем моем уважении, не соглашусь. Я АБСОЛЮТНО не знаю английского. Ну, разве что "Фейсом об тейбл". Впрочем, как и любого другого вражеского. Однако, насчет писания на VBA - кое чего могем (если захотим, конечно).


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Quote (KuklP)
Вадим, это не отмазка:-) Я тоже не знал языка. В школе ставили тройку только за то, чтоб я НЕ ходил на уроки английского. Хотим писать на языке потенциального противника - берем словарь и переводим. Так быстро усваивается язык. А не зная его, нечего и рыпаться писать на ВБА. Какую-то муть написать можно, конечно. Но и сам не будешь понимать, что это и как оно работает.

Сергей, при всем моем уважении, не соглашусь. Я АБСОЛЮТНО не знаю английского. Ну, разве что "Фейсом об тейбл". Впрочем, как и любого другого вражеского. Однако, насчет писания на VBA - кое чего могем (если захотим, конечно).

Автор - _Boroda_
Дата добавления - 03.09.2012 в 18:17
KuklP Дата: Понедельник, 03.09.2012, 18:24 | Сообщение № 19
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Саш, мож ты экстрасенс?:-) Пишешь на английском, не понимая - что? А то, что ты можешь - я знаю.:-)


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Понедельник, 03.09.2012, 18:24
 
Ответить
СообщениеСаш, мож ты экстрасенс?:-) Пишешь на английском, не понимая - что? А то, что ты можешь - я знаю.:-)

Автор - KuklP
Дата добавления - 03.09.2012 в 18:24
nerv Дата: Понедельник, 03.09.2012, 18:34 | Сообщение № 20
Группа: Редакторы
Ранг: Обитатель
Сообщений: 431
Репутация: 193 ±
Замечаний: 0% ±

Quote (KuklP)
на языке потенциального противника

с кем воюем? laugh

Quote (KuklP)
А не зная его, нечего и рыпаться писать на ВБА.

рыпаться можно. Только далеко не уедешь. Весь хелп и новая инфа на английском + по "серьезным" вопросам ничего путного не нагуглишь.

Quote (KuklP)
Саш, мож ты экстрасенс?:-)

экстасекс ) first


Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук


YM 41001156540584 / WM WMR R21924176233

https://github.com/nervgh/vba


Сообщение отредактировал nerv - Понедельник, 03.09.2012, 18:36
 
Ответить
Сообщение
Quote (KuklP)
на языке потенциального противника

с кем воюем? laugh

Quote (KuklP)
А не зная его, нечего и рыпаться писать на ВБА.

рыпаться можно. Только далеко не уедешь. Весь хелп и новая инфа на английском + по "серьезным" вопросам ничего путного не нагуглишь.

Quote (KuklP)
Саш, мож ты экстрасенс?:-)

экстасекс ) first

Автор - nerv
Дата добавления - 03.09.2012 в 18:34
  • Страница 1 из 4
  • 1
  • 2
  • 3
  • 4
  • »
Поиск:

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