Página 1 de 1

Desvio condicional múltiplo

Enviado: 17 Nov 2020 às 20:40
por riberex00
Boa noite pessoal. Mais uma ajuda por favor. Nesse meu procedimento quando eu testo o resultado , por exemplo, strLuzAcesa = Verde (Case "Verde"), não aparece o vbCritical e nem o título. Porém quando eu mudo a Var strLuzAcesa para Marron, que é "Case Else" aí sim aparece o título e o vbCritical. Onde está o erro? Obrigado!

Sub desvioMultiplo( )
Dim strLuzAcesa As String
strLuzAcesa = "Verde"
Select Case strLuzAcesa
Case "Azul"
MsgBox "A luz roxa ou azul está acesa!"
Case "Vermelha"
MsgBox "A luz vermelha ou amarela está acesa!"
Case "Verde"
MsgBox "A luz verde está acesa!"
Case Else
MsgBox "Outra cor de está acesa! " & "A luz acesa é a " & strLuzAcesa, vbCritical, _
"Teste"
End Select
Debug.Print strLuzAcesa
End Sub

Re: Desvio condicional múltiplo

Enviado: 17 Nov 2020 às 20:44
por Strogonoff
riberex00 escreveu: 17 Nov 2020 às 20:40 Boa noite pessoal. Mais uma ajuda por favor. Nesse meu procedimento quando eu testo o resultado , por exemplo, strLuzAcesa = Verde (Case "Verde"), não aparece o vbCritical e nem o título. Porém quando eu mudo a Var strLuzAcesa para Marron, que é "Case Else" aí sim aparece o título e o vbCritical. Onde está o erro? Obrigado!

Sub desvioMultiplo( )
Dim strLuzAcesa As String
strLuzAcesa = "Verde"
Select Case strLuzAcesa
Case "Azul"
MsgBox "A luz roxa ou azul está acesa!",vbcritical
Case "Vermelha"
MsgBox "A luz vermelha ou amarela está acesa!",vbcritical
Case "Verde"
MsgBox "A luz verde está acesa!",vbcritical
Case Else
MsgBox "Outra cor de está acesa! " & "A luz acesa é a " & strLuzAcesa, vbCritical, _
"Teste"
End Select
Debug.Print strLuzAcesa
End Sub
Você precisa colocar o vbcritical em todas as condiçoes e você somente colocou essa condição no case Else

Cara, que máximo que é esse coisa de programação. O negócio é mesmo empolgante. Um droga do "bem".

Enviado: 17 Nov 2020 às 21:15
por riberex00
:lol: :lol:
Strogonoff escreveu: 17 Nov 2020 às 20:44
riberex00 escreveu: 17 Nov 2020 às 20:40 Boa noite pessoal. Mais uma ajuda por favor. Nesse meu procedimento quando eu testo o resultado , por exemplo, strLuzAcesa = Verde (Case "Verde"), não aparece o vbCritical e nem o título. Porém quando eu mudo a Var strLuzAcesa para Marron, que é "Case Else" aí sim aparece o título e o vbCritical. Onde está o erro? Obrigado!

Sub desvioMultiplo( )
Dim strLuzAcesa As String
strLuzAcesa = "Verde"
Select Case strLuzAcesa
Case "Azul"
MsgBox "A luz roxa ou azul está acesa!",vbcritical
Case "Vermelha"
MsgBox "A luz vermelha ou amarela está acesa!",vbcritical
Case "Verde"
MsgBox "A luz verde está acesa!",vbcritical
Case Else
MsgBox "Outra cor de está acesa! " & "A luz acesa é a " & strLuzAcesa, vbCritical, _
"Teste"
End Select
Debug.Print strLuzAcesa
End Sub
Você precisa colocar o vbcritical em todas as condiçoes e você somente colocou essa condição no case Else

Re: Desvio condicional múltiplo

Enviado: 18 Nov 2020 às 09:30
por osvaldomp
Segue solução com somente uma MsgBox .
Código: Selecionar todos
Sub desvioMultiplo()
 Dim strLuzAcesa As String, msg As String
  strLuzAcesa = "Verde"
  Select Case strLuzAcesa
   Case "Azul": msg = "A luz roxa ou azul está acesa!"
   Case "Vermelha": msg = "A luz vermelha ou amarela está acesa!"
   Case "Verde": msg = "A luz verde está acesa!"
   Case Else: msg = "Outra cor de luz está acesa!"
  End Select
  MsgBox msg & "A luz acesa é a " & strLuzAcesa, vbCritical, "Teste"
  Debug.Print strLuzAcesa
End Sub
dica - em lugar de colocar a cor diretamente no código coloque-a em uma célula, por exemplo em A1, e aí altere no código ~~~> strLuzAcesa = [A1]