24.08.2020 Views

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capítulo 9: Usando VBA e Funções de Planilha

137

Calculando o pagamento de uma hipoteca

O próximo exemplo usa a função de planilha PGTO (na versão em inglês

do excel: PMT) para calcular o pagamento de uma hipoteca. Eu uso três

variáveis para armazenar os dados que são passados à função Pmt

como argumentos. Uma caixa de mensagem exibe o pagamento calculado.

Sub PmtCalc()

Dim InRate As Double

Dim LoadAmt As Double

Dim Periods As Integer

IntRate = 0.0825 / 12

Periods = 30 * 12

LoanAmt = 150000

MsgBox WorksheetFunction. _

Pmt(IntRate, Periods, -LoanAmt)

End Sub

Como demonstra a declaração a seguir, você também pode inserir os

valores diretamente como argumentos de função:

MsgBox WorksheetFunction.Pmt(0.0825 / 12, 360, -150000)

No entanto, usar variáveis para armazenar os parâmetros torna o

código mais fácil de ler e modificar, se necessário.

Usando uma função procv(lookup)

O exemplo a seguir usa funções InputBox e MsgBox do VBA, além da

função PROCV (vlookup) do Excel. Ela solicita o número de um produto

e depois obtém o preço através da consulta a uma tabela. Na Figura 9-1,

a faixa A1:B13 é chamada de PriceList (lista de preço).

Sub GetPrice()

Dim PartNum As Variant

Dim Price As Double

PartNum = InputBox(“Informe o número do produto”)

Sheets(“Prices”).Activate

Price = WorksheetFunction. _

Vlookup(PartNum, Range(“PriceList”), 2, False)

MsgBox PartNum & “ costs “ & Price

End Sub

Você pode fazer o download desse livro de exercícios a partir do Web

site do livro.

O procedimento começa assim:

1. A função InputBox do VBA pede o número do produto ao usuário.

2. Essa declaração atribui o número informado à variável PartNum.

3. A próxima declaração ativa a planilha Prices, só para o caso de ela

ainda não ser uma planilha ativa.

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

Saved successfully!

Ooh no, something went wrong!