r4f4el
Mensagens : 1 Data de inscrição : 04/07/2013
| Assunto: VBA - Acessar página WEB com login, e salvá-la Qui Jul 04, 2013 10:14 pm | |
| Bom dia, Sou iniciante em VBA, embora tenha um conhecimento básico em programação que me ajuda a encontrar códigos, alterar um pouco conforme preciso, e assim venho praticando em VBA. Estou tentando realizar uma atividade que consiste em: Acessar uma página de um sistema da empresa, logar (abre uma página que contém diversos números em colunas e linhas) e então salvá-la como .xls. Consigo abrir a página, logar, porém, ao salvar a página ocorre um problema muito estranho. É salvo a página inicial, do login, antes de ter entrado no sistema, como se não tivesse conseguido logar, mas, é efetuado o login normalmente.. e antes de salvar a página! Explicando um pouquinho melhor: A URL que eu acesso, é uma URL direta a uma parte do site que desejo salvar, e como não estou logado, ao logar, é aberto direto essa página, por isso não preciso navegar dentro do site. Já testei o seguinte: Loguei manualmente no site, portanto ao digitar a URL no navegador consigo acessar a página sem precisar logar mais (fica logado até que eu deslogue manualmente) e tirando a parte do código de logar e executando apenas o código VBA para acessar a página e salvá-la, acontecia o mesmo problema: salva a página inicial do sistema, como se não tivesse efetuado o login... ainda o mais estranho: se manualmente eu clico em Arquivo > Salvar Como: e dou um nome com extensão .xls, é salvo perfeitamente. Abro no excel e visualizo tudo perfeitamente. Alguém pode me ajudar? Não vejo como resolver isso sem ajuda. Testei vários códigos para download de página WEB, e é sempre a mesma coisa. O código segue abaixo: (Infos Adicionais: Office 2007 / fiz referência adicional somente a Microsoft Inetrnet Controls) Obrigado! - Código:
-
Sub download()
'login Dim user As String Dim password As String Dim link As String Dim ie As InternetExplorer Dim frmIe As Object Dim name As String Dim WinHttpReq As Object
user = "meu.login" password = "minha.senha" link = "url_gigantesca" Set ie = New InternetExplorer ie.Visible = True
ie.Navigate URL:=link Do Until ie.ReadyState = READYSTATE_COMPLETE DoEvents Loop ie.Document.all("id_textbox_login").innertext = user ie.Document.all("id_textbox_senha").innertext = password ie.Document.forms(0).submit 'downlaod
Set WinHttpReq = CreateObject("Microsoft.XMLHTTP") WinHttpReq.Open "GET", link, False WinHttpReq.send link = WinHttpReq.ResponseBody If WinHttpReq.Status = 200 Then Set oStream = CreateObject("ADODB.Stream") oStream.Open oStream.Type = 1 oStream.Write WinHttpReq.ResponseBody oStream.SaveToFile ("C:\Users\meu.login\Downloads\pagina.xls") oStream.Close End If
End Sub
| |
|