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ç!
___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].
Att.
André Arruda
Postado : 11/05/2018 10:35 am