Notifications
Clear all

MsgBox YesNo

3 Posts
1 Usuários
0 Reactions
1,238 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Possuo um banco de dados com vários veículos lançados.
Na célula "c37" existe uma fórmula "CONT.SE" que verifica quantos veículos cadastrados com determinado chassi, como abaixo descrito:

Sub INSERIR()
'
'Verifica se algum chassi já foi lançado

If Range("r24") = "" Then
MsgBox "Favor inserir o CPF do Cliente, este ítem é obrigatório!", vbCritical
Range("r24").Select
Exit Sub
'Verifica se o CPF do cliente foi digitado, caso contrário informa que o campo é obrigatório.

Else

If Range("n24") = "" Then
MsgBox "Favor inserir o Telefone do Cliente, este ítem é obrigatório!", vbCritical
Range("r24").Select
Exit Sub
'Verifica se o Telefone do cliente foi digitado, caso contrário informa que o campo é obrigatório.

Else

If Range("c37") >= 1 Then
MsgBox ("Já existe um lançamento para este veículo!. Você confirma mais um lançamento?"), vbYesNo, "Mensagem Excel"

'Verifica se o já existe algum lançamento para o chassi digitado. Caso exista, exibe uma mensagem
'indicando que já existe um lançamento e confirma se deseja incluir outro lançamento.

If vbYesNo = vbNo Then

Range("f19").Select

Exit Sub

Else

'se for "clicado" em SIM deverá proceguir e executar o código abaixo.

Range("E39:U39").Select
Selection.Copy
Sheets("RESUMO").Select
Range("B5").Select
Selection.Insert Shift:=xlDown
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=MOD(LIN();2)=0"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
.TintAndShade = 0.799981688894314
End With
Selection.FormatConditions(1).StopIfTrue = False
Sheets("LANÇAMENTOS").Select
Range("F15:G16").Select
ActiveWorkbook.Save
End If
End If
End If
End If

End Sub

O problema é que quando é exibida a mensagem de chassi repetido, tanto faz se é apertado o botão SIM ou Não que o código é executado. Como fazer o código para que seja executado somente quando é clicado no botão SIM?

Um forte abraço.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 31/12/2010 8:49 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

1) Pesquise no Ajuda do VBA ou na internet para usar IF com ELSEIF

2) Substitua
If vbYesNo = vbNo Then
Por
If MsgBox("Deseja continuar?", vbYesNo, "MENSAGEM") = vbNo Then

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 31/12/2010 10:46 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tenta usar essa formula!

x = MsgBox("Já existe um lançamento para este veículo! Você confirma mais um lançamento?", vbYesNo, "Mensagem Excel")
If x = 6 Then
ElseIf x = 7 Then
Exit Sub
End If

Obs.:

Se voce colocar que sim ela continuara o processo,
se voce colocar não ela não continuara!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 13/01/2011 5:26 am