VBA MsgBox (Sim / Não)

Excel VBA MsgBox (Sim / Não)

No VBA , usando a caixa de mensagem, podemos criar um sim não msgbox que é usado para registrar a entrada do usuário com base no clique em sim ou não, a sintaxe para fazer uma caixa de mensagem sim não é a seguinte variável = MsgBox (“Texto”, vbQuestion + vbYesNo + vbDefaultButton2, “Título da caixa de mensagem”) onde a variável deve ser declarada como um inteiro.

Freqüentemente, na codificação VBA, precisamos coletar os valores de entrada dos usuários para realizar alguma tarefa e uma dessas tarefas para coletar a resposta Sim ou Não dos usuários. Usando o método VBA MsgBox Yes No, podemos escrever o código para prosseguir no código.

Em certas situações, podemos precisar apresentar a opção Sim ou Não na frente do usuário para dar sua resposta e, com base nessa resposta, podemos realmente executar o código VBA.

Por exemplo, observe a imagem abaixo do MsgBox em VBA.

Se o usuário disser Sim “podemos escrever código para realizar uma tarefa específica” e se o usuário disser “Não”, podemos escrever código para realizar outro conjunto de tarefas.

Como trabalhar com MsgBox Sim / Sem Resposta?

Você pode baixar esta caixa de mensagem VBA sim ou não modelo Excel aqui - caixa de mensagem VBA sim ou não modelo Excel

Exemplo # 1 - Copiar e colar com base na resposta

Por exemplo, observe o código abaixo.

Código:

 Sub MessageBox_Yes_NO_Example1 () Dim AnswerYes As String Dim AnswerNo As String AnswerYes = MsgBox ("Deseja copiar?", VbQuestion + vbYesNo, "User Repsonse") If AnswerYes = vbYes Then Range ("A1: A2"). ("C1") Outro intervalo ("A1: A2"). Copiar intervalo ("E1") End If End Sub 

Explicação:

O acima declarou a variável como String, ou seja

 Dim Resposta Sim como string 

Na próxima linha, atribuímos o valor por meio da caixa de mensagem perguntando “Deseja copiar?”.

AnswerYes = MsgBox ("Deseja copiar?", VbQuestion + vbYesNo, "User Repsonse")

Agora a instrução IF avalia a resposta dada por meio da caixa de mensagem. Se o resultado da caixa de mensagem for vbSim , ele copiará o intervalo A1 a A2 e colará na célula C1.

   Se RespostaSim = vbSim Então Faixa ("A1: A2"). Copiar Faixa ("C1")

Se a resposta fornecida pela caixa de mensagem for Não, ele copiará o intervalo A1 a A2 e colará na célula E1.

 Outro intervalo ("A1: A2"). Copiar intervalo ("E1") End If 

Ok, eu inseri alguns valores nas células A1 e A2 agora.

Agora irei rodar o código usando a tecla F5 ou por meio da opção run, uma caixa de mensagem aparecerá na minha frente pedindo minha resposta.

Se eu clicar em Sim, ele copiará o intervalo A1 a A2 e colará na célula C1. Agora clico em Sim e vejo o resultado.

Portanto, executou a tarefa atribuída se a resposta for SIM.

Agora, novamente, irei executar o código.

Desta vez, selecionarei Não e verei o que acontece.

Sim, executou a tarefa atribuída no código, ou seja

 Outro intervalo ("A1: A2"). Copiar intervalo ("E1")

Exemplo # 2 - Ocultar e exibir planilhas com base na resposta

O código abaixo irá ocultar todas as planilhas, exceto a planilha ativa, se a resposta for sim.

Código:

 Sub HideAll () Dim Answer As String Dim Ws As Worksheets Answer = MsgBox ("Deseja ocultar tudo?", VbQuestion + vbYesNo, "Hide") If Answer = vbYes Then For each Ws In ActiveWorkbook.Worksheets If Ws.Name ActiveSheet.Name Then Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Você optou por não ocultar as planilhas", vbInformation, "No Hide" End If End Sub 

O código acima irá ocultar todas as planilhas, exceto a planilha em que estamos agora, se a resposta da caixa de mensagem for SIM.

Se a resposta da caixa de mensagem for NÃO, será exibida a caixa de mensagem dizendo “Você optou por não ocultar as planilhas”.

Da mesma forma, o código abaixo exibirá a planilha se a resposta for Sim.

Código:

 Sub UnHideAll () Dim Answer As String Dim Ws As Worksheet Answer = MsgBox ("Deseja Reexibir Tudo?", VbQuestion + vbYesNo, "Hide") If Answer = vbYes Then For each Ws In ActiveWorkbook.Worksheets Ws.Visible = xlSheetVeryHidden Next Ws ElseIf Answer = vbNo Then MsgBox "Você optou por não exibir as planilhas", vbInformation, "Não ocultar" End If End Sub 

Isso funciona exatamente da mesma forma que ocultar o código da folha, se sim, ele será exibido, se não, não será exibido.