24.08.2020 Views

Programando o Excel ® Vba Para Leigos - 2ª Ed 2013 NoDRM (1)

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Capítulo 11: Procedimentos e Eventos Automáticos

175

seguinte procedimento verifica que a célula que foi clicada com o botão

direito contém um valor numérico. Se for o caso, o código exibe a caixa

de diálogo Format Number e configura o argumento Cancel para

Verdadeiro (evitando a exibição normal do menu de atalho). Se a célula

não tiver um valor numérico, nada de especial acontece – o menu de

atalho é exibido, como de costume.

Private Sub Worksheet_BeforeRightClick _

(ByVal Target As Excel.Range, Cancel As Boolean)

If IsNumeric(Target) And Not IsEmpty(Target) Then

Applicaation.CommandBars.ExecuteMso _

(“NumberFormatsDialog”)

Cancel = True

End If

End Sub

Observe que o código, que está disponível no site deste livro, faz uma

verificação adicional para ver se a célula não está vazia. Isso, porque o

VBA considera células vazias como sendo numéricas. Não me pergunte

o motivo; ele simplesmente considera.

O evento Change

O evento Change acontece sempre que qualquer célula na planilha é

alterada. No seguinte exemplo, o procedimento Worksheet_Change evita,

efetivamente, que um usuário entre com um valor não numérico na célula

A1. Este código é armazenado na janela Código de um objeto Sheet.

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = “$A$1” Then

If Not IsNumeric(Target) Then

MsgBox = “Insira um número na célula A1.”

Range(“A1”).ClearContents

Range(“A1”).Activate

End If

End If

End Sub

O único argumento para o procedimento Worksheet_Change representa a

faixa que foi alterada. A primeira declaração verifica se o endereço da

célula é $A$1. Se for, o código usa a função IsNumeric para determinar se a

célula contém um valor numérico. Se não, aparece uma mensagem e o

valor da célula é apagado. Então, a célula A1 é ativada – útil, se o indicador

da célula mudou para uma célula diferente depois da entrada ser feita. Se

houver a alteração em qualquer célula, exceto A1, nada acontece.

Por que não usar validação de dados?

Você pode estar familiarizado com o comando DadosðFerramentas de

DadosðValidação de Dados. Esse é um recurso conveniente que visa

garantir que apenas dados do tipo adequado sejam inseridos em uma

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!