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.