Páginas

sexta-feira, 11 de dezembro de 2009

Retornando Informações do Ativo


Esta função personalizada (UDF) retorna, à partir de um de um Ativo e da opção selecionada.
Para saber quais são as opções observe o Select Case da função.
São necessárias as referências descritas na função.




Public Function retornaValor(Papel As String, Opcao As Integer)

'Desenvolvida por Bruno Leite
'bruno_silva_leite@yahoo.com.br


'Sao necessarias as referencias( ferramentas/referências) a

'Microsoft Office Soap type library

'Microsoft XML

 

Dim ObjReque As New XMLHTTP60

Dim doc As New DOMDocument30

Dim N1 As IXMLDOMNode

Dim StrSoap As String

'caminho do webservice desenvolvido por Risco Zero Projetos

Const StrPath As String = "http://consultacotacao.riscozeroprojetos.com.br/sConsultaCotacao.asmx?op=ObterCotacao"

 

'Definindo Envelope SOAP

StrSoap = ""

StrSoap = StrSoap & ""

StrSoap = StrSoap & ""

StrSoap = StrSoap & ""

StrSoap = StrSoap & "" & Papel & ""

StrSoap = StrSoap & ""

StrSoap = StrSoap & ""

StrSoap = StrSoap & ""

 

ObjReque.Open "POST", StrPath

 

'Definindo cabeçalho

ObjReque.setRequestHeader "POST", "/sConsultaCotacao.asmx HTTP/1.1"

ObjReque.setRequestHeader "Host", "consultacotacao.riscozeroprojetos.com.br"

ObjReque.setRequestHeader "Content-Type", "text/xml; charset=utf-8"

ObjReque.setRequestHeader "Content-Length", Len(StrSoap)

ObjReque.setRequestHeader "SOAPAction", "http://cotacao.sjdr.com.br/ObterCotacao"

 

'Enviando envelope SOAP

ObjReque.send StrSoap

 

'recuperando valores no SOAP recebido

doc.loadXML ObjReque.responseText

 

'de acordo com a selecao retorne a opção

Select Case Opcao

Case 1

 Opc = "codAtivo"

Case 2

 Opc = "descAtivo"

Case 3

 Opc = "datPregao"

Case 4

 Opc = "horCotacao"

Case 5

 Opc = "valAbertura"

Case 6

 Opc = "valMaximo'"

Case 7

 Opc = "valMinimo'"

Case 8

 Opc = "valMedio"

Case 9

 Opc = "qtdVariacao"

Case 10

 Opc = "qtdVolume"

Case 11

 Opc = "valAtual"

Case 12

 Opc = "numNegocios"

Case 13

 Opc = "valFechamento"

End Select

 

'Selecionando nó no arquivo recebido

Set N1 = doc.selectSingleNode("//" & Opc)



'retornando valor

retornaValor = N1.Text



Set ObjReque = Nothing

Set doc = Nothing

End Function




Em uma célula qualquer digite = RetornaValor("BVMF3",11), a função irá retornar o valor da última cotação do Papel.

Desenvolvida por Bruno Leite

1 comentários:

Anônimo disse...

Simplesmente espetacular.
Parabéns por esta dica.
É bem difícil achar dicas de qualidade como esta em Excel para investimentos financeiros.
Com a inclusão das referências funcionou perfeitamente.
Minha dúvida é: Como será a atualização dos valores?
Na medida que o valor lá no site se alterar a função vai se alterar sozinha ? como fazer para ela buscar os novos valores de tempos em tempos ?

Postar um comentário

Related Posts Plugin for WordPress, Blogger...