VBA MsgBox Sim / Não - Como criar uma resposta 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 algumas tarefas 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 uma 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?

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 de uma caixa de mensagem perguntando: “Você 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 intervalo ("A1: A2"). Copiar intervalo ("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 através da opção run, uma caixa de mensagem aparecerá na minha frente e pedirá 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 a seguir 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, ele não será exibido.

Artigos interessantes...