Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Calculo Indice Financeiro (CDI)

Fórum para dúvidas sobre os fundamentos da linguagem de programação Visual Basic no contexto do VBA
Divino Rodrigues
Colaborador
Colaborador
Mensagens: 15
Registrado em: Ter Dez 20, 2016 1:27 pm

Calculo Indice Financeiro (CDI)

Mensagem por Divino Rodrigues »

Ola... Pessoal

Estou trabalhando no codigo abaixo e gostaria de acumular a coluna de indice no VBA EXCEL. A soma eu já consegui quando fiz a tentativa de de mutiplicar os indices não consegui. Apareceu erro de objeto. Se alguem puder me ajudar.... Segue anexo o arquivo.

Private Sub CommandButton1_Click()


DataInicial = CDbl(DateValue(TextBox1))
DataFinal = CDbl(DateValue(TextBox2))

TextBox3 = WorksheetFunction.Product(Plan1.Range("C3:C16"), Plan1.Range("B3:B16"), ">=" & DataInicial, Plan1.Range("B3:B16"), "<=" & DataFinal)


End Sub


Grato!
Divino Rodrigues
divino_rs@outlook.com
Anexos
PLANILHA CALCULO INDICES VBA.zip
(17.69 KiB) Baixado 183 vezes


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Calculo Indice Financeiro (CDI)

Mensagem por Reinaldo »

Creio não haver entendido a demanda.
A função Mult (Product), diferente da função SomaSes (Sumifs), não aceita "parametros".
Pode fornecer maiores detalhes do desejado; bem como o resultado esperado?


Divino Rodrigues
Colaborador
Colaborador
Mensagens: 15
Registrado em: Ter Dez 20, 2016 1:27 pm

Re: Calculo Indice Financeiro (CDI)

Mensagem por Divino Rodrigues »

Creio não haver entendido a demanda.
A função Mult (Product), diferente da função SomaSes (Sumifs), não aceita "parametros".
Pode fornecer maiores detalhes do desejado; bem como o resultado esperado?

Olá. É justamente isso. Gostaria de viabilizar a multiplicação dos indices do intervalo de datas. E encontrar o indice acumulado no intervalo de datas solicitado. Como viabilizar isto em VBA?

Grato!
Divino Rodrigues


Avatar do usuário
Reinaldo
Jedi
Jedi
Mensagens: 1537
Registrado em: Sex Ago 01, 2014 4:09 pm
Localização: Garça - SP / SCS - SP

Re: Calculo Indice Financeiro (CDI)

Mensagem por Reinaldo »

Fiquei na mesma, experimente o que acredito seja o esperado:

Código: Selecionar todos

Private Sub CommandButton1_Click()
DataInicial = CDbl(DateValue(TextBox1))
DataFinal = CDbl(DateValue(TextBox2))

'TextBox3 = WorksheetFunction.SumIfs(Plan1.Range("C3:C16"), Plan1.Range("B3:B16"), ">=" & DataInicial, Plan1.Range("B3:B16"), "<=" & DataFinal)
TextBox3 = VBA.Round(multiplicaSe(DataInicial, DataFinal), 5)
End Sub

Private Function multiplicaSe(ByVal DtIni As Date, ByVal DtFim As Date) As Double
Dim x As Integer
multiplicaSe = 1
With Sheets("Plan1")
For x = 3 To .Cells(Rows.Count, 1).End(xlUp).Row
    If .Cells(x, 2).Value >= DtIni And .Cells(x, 2).Value <= DtFim Then multiplicaSe = multiplicaSe * .Cells(x, 3).Value
Next
End With
End Function


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder