Notifications
Clear all

Msgbox aparece duas vezes (foi programado para aparecer apen

3 Posts
2 Usuários
0 Reactions
979 Visualizações
(@jnexcel)
Posts: 0
New Member
Topic starter
 

Prezados,

abaixo segue o código da minha planilha.

o problema é que msgbox está aparecendo duas vezes ao invés de apenas uma.

alguém poderia me ajudar a corrigir isso por favor?

código:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets("Correlação Fiscal").Select
If Range("b2") = "CONSUMO" Then
MsgBox "No sistema esse CFOP será convertido para: 1556", vbInformation, "Correlação Fiscal" ' essa msgbox deverá aparecer apenas uma vez
Range("b2").Select ' Quando o excel selecionar a célula b2, não vai exibir o msgbox
Selection.ClearContents
Else
End If
If Range("b2") = "REVENDA" Then
MsgBox "No sistema esse CFOP será convertido para: 1102", vbInformation, "Correlação Fiscal" ' essa msgbox deverá aparecer apenas uma vez
Range("b2").Select ' Quando o excel selecionar a célula b2, não vai exibir o msgbox
Selection.ClearContents
Else
End If
If Range("b2") = "VENDA" Then
MsgBox "No sistema esse CFOP será convertido para: 1101", vbInformation, "Correlação Fiscal" ' essa msgbox deverá aparecer apenas uma vez
Range("b2").Select ' Quando o excel selecionar a célula b2, não vai exibir o msgbox
Selection.ClearContents
Else
End If
If Range("b2") = "ATIVO" Then
MsgBox "No sistema esse CFOP será convertido para: 1551", vbInformation, "Correlação Fiscal" ' essa msgbox deverá aparecer apenas uma vez
Range("b2").Select ' Quando o excel selecionar a célula b2, não vai exibir o msgbox
Selection.ClearContents
Else
End If
End Sub
 
Postado : 11/05/2018 10:21 am
(@xlarruda)
Posts: 0
New Member
 

Isso está acontecendo porque está usando o Envento Selection_Change. Na verdade você deveria usar o evento Change.

Segue Corrigido:

Private Sub Worksheet_Change(ByVal Target As Range)
Sheets("Correlação Fiscal").Select
If Range("b2") = "CONSUMO" Then
MsgBox "No sistema esse CFOP será convertido para: 1556", vbInformation, "Correlação Fiscal" ' essa msgbox deverá aparecer apenas uma vez
Range("b2").Select ' Quando o excel selecionar a célula b2, não vai exibir o msgbox
Selection.ClearContents
End If
If Range("b2") = "REVENDA" Then
MsgBox "No sistema esse CFOP será convertido para: 1102", vbInformation, "Correlação Fiscal" ' essa msgbox deverá aparecer apenas uma vez
Range("b2").Select ' Quando o excel selecionar a célula b2, não vai exibir o msgbox
Selection.ClearContents
End If
If Range("b2") = "VENDA" Then
MsgBox "No sistema esse CFOP será convertido para: 1101", vbInformation, "Correlação Fiscal" ' essa msgbox deverá aparecer apenas uma vez
Range("b2").Select ' Quando o excel selecionar a célula b2, não vai exibir o msgbox
Selection.ClearContents
End If
If Range("b2") = "ATIVO" Then
MsgBox "No sistema esse CFOP será convertido para: 1551", vbInformation, "Correlação Fiscal" ' essa msgbox deverá aparecer apenas uma vez
Range("b2").Select ' Quando o excel selecionar a célula b2, não vai exibir o msgbox
Selection.ClearContents
End If
End Sub

Também não há necessidade do else no final se não houver nenhuma contrapartida na mesma condicional.

Abrç!

 
Postado : 11/05/2018 10:35 am
(@jnexcel)
Posts: 0
New Member
Topic starter
 

muito obrigado

 
Postado : 17/05/2018 8:14 am