Exercício Resolvido
Resolvendo o Problema
-
Primeiramente criaremos o layout do UserForm com três botões, iniciando com o botão de "Encerrar Votação".
Inicia-se com "Encerrar Votação" primeiro para que o VBA não dê o Focus inicial para o botão de um dos candidatos.
-
Alteramos a propriedade dos botões TakeFocusOnClick para False, para assim não influenciar o próximo votante.
Experimente configurar de forma diferente essas propriedades ao final do exercício executando a urna.
-
Dê duplo clique nos botões para criar suas Sub de evento _Click e declare as variáveis para contabilização de votos fora do escopo destas sub-rotinas.
Dim votacaoA As Integer
Dim votacaoB As Integer
Private Sub CommandButton2_Click()
End Sub
Private Sub CommandButton3_Click()
End Sub
Private Sub CommandButton1_Click()
End Sub
-
Crie MsgBox informando quando os votos são computados e os contabilize ao clicar no botão para encerrar a votação, mostrando quem venceu (ou se houve um empate) e zerando suas contagens:
Dim votacaoA As Integer
Dim votacaoB As Integer
Private Sub CommandButton2_Click()
votacaoA = votacaoA + 1
MsgBox "Obrigado pelo seu voto!"
End Sub
Private Sub CommandButton3_Click()
votacaoB = votacaoB + 1
MsgBox "Obrigado pelo seu voto!"
End Sub
Private Sub CommandButton1_Click()
If votacaoA > votacaoB Then
MsgBox "Candidato A venceu!"
ElseIf votacaoA < votacaoB Then
MsgBox "Candidato B venceu!"
Else
MsgBox "Votação empatou."
End If
votacaoA = 0
votacaoB = 0
End Sub
Código Consolidado
Dim votacaoA As Integer
Dim votacaoB As Integer
Private Sub CommandButton2_Click()
votacaoA = votacaoA + 1
MsgBox "Obrigado pelo seu voto!"
End Sub
Private Sub CommandButton3_Click()
votacaoB = votacaoB + 1
MsgBox "Obrigado pelo seu voto!"
End Sub
Private Sub CommandButton1_Click()
If votacaoA > votacaoB Then
MsgBox "Candidato A venceu!"
ElseIf votacaoA < votacaoB Then
MsgBox "Candidato B venceu!"
Else
MsgBox "Votação empatou."
End If
votacaoA = 0
votacaoB = 0
End Sub
SuperExcelVBA.com é um site voltado ao aprendizado de VBA. Exemplos e explicações podem ter sido simplificados para maior e mais veloz compreensão. Estamos constantemente nos atualizando e corrigindo erros, porém não existe garantia sobre o conteúdo disponível no site. Todos os direitos reservados.
Excel ® é uma marca registrada da Microsoft Corporation.
© 2024 SuperExcelVBA | SOBRE