MsgBox с бутони Yes i No
8 отговора
0 прегледа
MsgBox с бутони Yes i No
Може ли да ме светнете по въпроса,защото изчетох всичко по темата, но така и не схванах, как да прекъсна изпълнението на програмата , когато потребителя избере бутона No.
На времето съм учил малко Бейсик за персонални компютри и там съм ползвал командата Goto 30 (30 e номера на реда за край или връща рпограмата от начало примерно: с GOUSUB 30 30 RETURN и така RETURN връщаше програмата на реда под GOUSUB....).
Сигурно е много лесно ,ама като не става и не става .
Благодаря
На времето съм учил малко Бейсик за персонални компютри и там съм ползвал командата Goto 30 (30 e номера на реда за край или връща рпограмата от начало примерно: с GOUSUB 30 30 RETURN и така RETURN връщаше програмата на реда под GOUSUB....).
Сигурно е много лесно ,ама като не става и не става .
Благодаря
Re: MsgBox с бутони Yes i No
Няма да е зле да изясниш какво разбираш под прекъсване на програмата. Все пак това е Excel. Него ли искаш да затвориш или да прекратиш изпълнението на някоя функция или процедура.
VB в Excel също има оператор Goto, само трябва да натиснеш F1 и да напишеш Goto и ще ти покаже как стават нещата.
VB в Excel също има оператор Goto, само трябва да натиснеш F1 и да напишеш Goto и ще ти покаже как стават нещата.
GoTo Statement Example
This example uses the GoTo statement to branch to line labels within a procedure.
Sub GotoStatementDemo()
Dim Number, MyString
Number = 1 ' Initialize variable.
' Evaluate Number and branch to appropriate label.
If Number = 1 Then GoTo Line1 Else GoTo Line2
Line1:
MyString = "Number equals 1"
GoTo LastLine ' Go to LastLine.
Line2:
' The following statement never gets executed.
MyString = "Number equals 2"
LastLine:
Debug.Print MyString ' Print "Number equals 1" in
' the Immediate window.
End Sub
Re: MsgBox с бутони Yes i No
Ами примерно : Ако MsgBox()=vbNo then нищо
Ако MsgBox()=vbOK then записва данни
Видях,че тази тема е дискутирана от komputara но не ми става ясно
Ако MsgBox()=vbOK then записва данни
Видях,че тази тема е дискутирана от komputara но не ми става ясно
Re: MsgBox с бутони Yes i No
Абе хора, няма ли да се научите да задавате въпрос точно и конкретно?
И да иска да помогне някой не може. Не може да гадаем какво си мислиш в момента и какво искаш да направиш.
кажи примерно "ако стойността на клетка А4 стане 69 тогава искам да ми се появи съобщение с текст " искате ли стойността на клетка В2 да се увеличи с 69" и два бутона Yes и No. Ако натисна Yes да се изпълни съобщението. Ако натисна No да ми се затвори файла"
нещо подобно ясно и конкретно!!!
И да иска да помогне някой не може. Не може да гадаем какво си мислиш в момента и какво искаш да направиш.
кажи примерно "ако стойността на клетка А4 стане 69 тогава искам да ми се появи съобщение с текст " искате ли стойността на клетка В2 да се увеличи с 69" и два бутона Yes и No. Ако натисна Yes да се изпълни съобщението. Ако натисна No да ми се затвори файла"
нещо подобно ясно и конкретно!!!
Re: MsgBox с бутони Yes i No
Създал съм списък на наличните артикули в лист1 При добавяне на нов артикул и натискане на бутона "ОК" да сигнализира с диалогов прозорец ,че същият не фигурира в списъка, и след натискане на бутон Yes новият арикул да се запише в списъка в лист1 . След като новият артикул бъде записан в списъка в лист 1 натискайки бутона "ЗАПИС" цялата информация въведена за новият артикул да се запише на лист3.
А ако натисан бутона NO програмата да не прави нищо.
Ако въведеният артикул фигурира в списъка в лист1 то като натисна бутона „ЗАПИС”
Въведената информация да се запише в лист 3.
Има подобна тема но от нея нищичко не разбирам.
А ако натисан бутона NO програмата да не прави нищо.
Ако въведеният артикул фигурира в списъка в лист1 то като натисна бутона „ЗАПИС”
Въведената информация да се запише в лист 3.
Има подобна тема но от нея нищичко не разбирам.
Re: MsgBox с бутони Yes i No
"Създал съм списък на наличните артикули в лист1"
- къде си ги създал? ред1? колона 234? област?
"При добавяне на нов артикул "
- как добавяш артикул? через потребителска форма с текстбоксове и комбобоксове? в определена клетка на таблицата? или по друг начин.
" След като новият артикул бъде записан в списъка в лист 1 натискайки бутона "ЗАПИС" цялата информация въведена за новият артикул да се запише на лист3. "
- Тоя бутон "ЗАПИС" къде е? във формата(ако ползваш такава) или в таблицата?
- как въвеждаш информацията за новия артикул?
- къде в лист 3 да се запише информацията? редове? колони?
ако отговориш ясно получаваш ясен отговор, ако ли не опитай пак.
всичко е елементарно да се направи стига да се знае какво искаш да направиш.
- къде си ги създал? ред1? колона 234? област?
"При добавяне на нов артикул "
- как добавяш артикул? через потребителска форма с текстбоксове и комбобоксове? в определена клетка на таблицата? или по друг начин.
" След като новият артикул бъде записан в списъка в лист 1 натискайки бутона "ЗАПИС" цялата информация въведена за новият артикул да се запише на лист3. "
- Тоя бутон "ЗАПИС" къде е? във формата(ако ползваш такава) или в таблицата?
- как въвеждаш информацията за новия артикул?
- къде в лист 3 да се запише информацията? редове? колони?
ако отговориш ясно получаваш ясен отговор, ако ли не опитай пак.
всичко е елементарно да се направи стига да се знае какво искаш да направиш.
Re: MsgBox с бутони Yes i No
Чрез потребителска форма с текстбоксове и комбобокс,която се намира в лист”ЗАПИСВАНЕ” попълвам данни за определен артикул .Данните за списъка с наличните артикули се намира в лист”АРТИКУЛИ”в клетка А1 и надолу . Във формата съм ситуирал бутона „ЗАПИС”, който при натискане записва данните от текстбоксовете и комбобокса в лист”БАЗА ДАННИ”в първата празна клетка.
При натискане на бутона „ЗАПИС” ако артикула попълнен в комбобокса не е наличен в списъка в лист”АРТИКУЛИ” да се изведе MsgBox с бутони Yes и No и съобщение ,че същият липсва .Ако потребителят избере бутона „Yes”, тогава артикула в комбобокса да се добави към списъка с артикули в лист”АРТИКУЛИ”, след което чрез повторно натискане бутона ЗАПИС данните в текстбоксовете и комбобокса да се запишат в листа”БАЗА ДАННИ”, а ако потребителят избере бутона NO тогава нищо , тоест можем да предположим , че потребителят при попълване на артикула в комбобокса може да допусне правописна грешка или да чукне друг клавиш по невнимание и тогава програмата го припознава ,като нов артикул и съответно се извежда съобщение за артикул ,който липсва в списъка.
ПРИМЕР: Дездорант а трябва да е Дезодорант.
Тоест давам възможност на потребителя да поправи това което е въвел.
А ако потребителят въведе артикул в комбобокса ,който съществува в лист”АРТИКУЛИ” то тогава да не се извежда съобщение а направо да да се зпишат данните в лист”БАЗА ДАННИ” чрез бутона „ЗАПИС”
При натискане на бутона „ЗАПИС” ако артикула попълнен в комбобокса не е наличен в списъка в лист”АРТИКУЛИ” да се изведе MsgBox с бутони Yes и No и съобщение ,че същият липсва .Ако потребителят избере бутона „Yes”, тогава артикула в комбобокса да се добави към списъка с артикули в лист”АРТИКУЛИ”, след което чрез повторно натискане бутона ЗАПИС данните в текстбоксовете и комбобокса да се запишат в листа”БАЗА ДАННИ”, а ако потребителят избере бутона NO тогава нищо , тоест можем да предположим , че потребителят при попълване на артикула в комбобокса може да допусне правописна грешка или да чукне друг клавиш по невнимание и тогава програмата го припознава ,като нов артикул и съответно се извежда съобщение за артикул ,който липсва в списъка.
ПРИМЕР: Дездорант а трябва да е Дезодорант.
Тоест давам възможност на потребителя да поправи това което е въвел.
А ако потребителят въведе артикул в комбобокса ,който съществува в лист”АРТИКУЛИ” то тогава да не се извежда съобщение а направо да да се зпишат данните в лист”БАЗА ДАННИ” чрез бутона „ЗАПИС”
Редактирано от driver85 на
Re: MsgBox с бутони Yes i No
Може да не е точно това което питаш...
Аз скоро използвах този начин:
Response = MsgBox("Текстово съобщение", vbYesNo, "Запитване за продължение..")
If Response = vbNo Then
Exit Sub
End If
има си възможност за избор на различни от vbYesNo комбинации и в процедурата If да се укаже какво да се слува ...
Аз скоро използвах този начин:
Response = MsgBox("Текстово съобщение", vbYesNo, "Запитване за продължение..")
If Response = vbNo Then
Exit Sub
End If
има си възможност за избор на различни от vbYesNo комбинации и в процедурата If да се укаже какво да се слува ...
Re: MsgBox с бутони Yes i No
Private Sub CommandButton1_Click()
Dim artikul As Boolean
artikul = False
For Each cell In Sheets("АРТИКУЛИ").Range("A:A") ‘обхожда колона А на лист артикули
r = r + 1 ‘ брояч на редове
If cell = ComboBox1.Text Then artikul = True ‘отбелязва се ако има съвпадение на клетка с комбобокса
If cell = "" Then Exit For ‘ прекъсва цикъла при празна клетка
Next
If artikul = False Then m = MsgBox("артикулът " & ComboBox1.Text & " липсва", vbYesNo, "ВНИМАНИЕ") ‘ ако няма съвпадение извежда съобщение , ако е натиснато Yes m става =6, ако е No m става =7
If m = 6 Then ‘ ако е натиснат Yes
Sheets("АРТИКУЛИ").Cells(r, 1) = ComboBox1.Text първата празна клетка става = комбобокса
Exit Sub ‘ прекъсва по-нататъшното изпълнение
End If
If m = 7 Then Exit Sub ‘ ако е натиснато No прекъсва по-нататъшното изпълнение
For Each cell In Sheets("БАЗА ДАННИ").Range("A:A") ‘обхожда колона А на лист база данни
r = r + 1 ‘ брояч на редове
If cell = "" Then ако срещне празна клетка
Sheets("БАЗА ДАННИ").Cells(r, 1) = ComboBox1.Text ‘ записва данните от формата в база данни
Sheets("БАЗА ДАННИ").Cells(r, 2) = TextBox1.Text
Sheets("БАЗА ДАННИ").Cells(r, 3) = TextBox2.Text ‘ и т.н. докато вкараш всички данни
Exit For ‘ прекъсва изпълнението на цикъка
End If
Next
Unload UserForm1 ‘ излизане от формата
End Sub
Private Sub UserForm_Initialize()
‘настройване на формата
For Each cell In Sheets("АРТИКУЛИ").Range("A:A") ‘обхожда колона А на лист артикули
r = r + 1 ‘ брояч на редове
If cell = "" Then Exit For ‘ако срещне празна клетка прекъсва цикъла
ComboBox1.AddItem Sheets("АРТИКУЛИ").Cells(r, 1) ‘зарежда комбобокса с данните от колона А
Next
'ComboBox1.Style = fmStyleDropDownList ‘ по този начин можеш да направиш да не могат да се вкарат други данни в комбобокса можеш да изтреш реда ако искаш
End Sub
Dim artikul As Boolean
artikul = False
For Each cell In Sheets("АРТИКУЛИ").Range("A:A") ‘обхожда колона А на лист артикули
r = r + 1 ‘ брояч на редове
If cell = ComboBox1.Text Then artikul = True ‘отбелязва се ако има съвпадение на клетка с комбобокса
If cell = "" Then Exit For ‘ прекъсва цикъла при празна клетка
Next
If artikul = False Then m = MsgBox("артикулът " & ComboBox1.Text & " липсва", vbYesNo, "ВНИМАНИЕ") ‘ ако няма съвпадение извежда съобщение , ако е натиснато Yes m става =6, ако е No m става =7
If m = 6 Then ‘ ако е натиснат Yes
Sheets("АРТИКУЛИ").Cells(r, 1) = ComboBox1.Text първата празна клетка става = комбобокса
Exit Sub ‘ прекъсва по-нататъшното изпълнение
End If
If m = 7 Then Exit Sub ‘ ако е натиснато No прекъсва по-нататъшното изпълнение
For Each cell In Sheets("БАЗА ДАННИ").Range("A:A") ‘обхожда колона А на лист база данни
r = r + 1 ‘ брояч на редове
If cell = "" Then ако срещне празна клетка
Sheets("БАЗА ДАННИ").Cells(r, 1) = ComboBox1.Text ‘ записва данните от формата в база данни
Sheets("БАЗА ДАННИ").Cells(r, 2) = TextBox1.Text
Sheets("БАЗА ДАННИ").Cells(r, 3) = TextBox2.Text ‘ и т.н. докато вкараш всички данни
Exit For ‘ прекъсва изпълнението на цикъка
End If
Next
Unload UserForm1 ‘ излизане от формата
End Sub
Private Sub UserForm_Initialize()
‘настройване на формата
For Each cell In Sheets("АРТИКУЛИ").Range("A:A") ‘обхожда колона А на лист артикули
r = r + 1 ‘ брояч на редове
If cell = "" Then Exit For ‘ако срещне празна клетка прекъсва цикъла
ComboBox1.AddItem Sheets("АРТИКУЛИ").Cells(r, 1) ‘зарежда комбобокса с данните от колона А
Next
'ComboBox1.Style = fmStyleDropDownList ‘ по този начин можеш да направиш да не могат да се вкарат други данни в комбобокса можеш да изтреш реда ако искаш
End Sub
Редактирано от nepukis на